#!/bin/ksh
#
#  Script:  get_nam_on_rap.sh
#
# purpose:  to get NAM files and copygb them onto RAP CONUS/130 or Alaska/242 grid
#           Some addtional aviation products are pre-calculated: CAT, LLWS, 1-hr APCP
#           
#  Author: Binbin Zhou, IMSG/EMC/NCEP
#          10/17/2011    
#
#####################################################################################

set -x 

typeset -Z2 narre_cyc
narre_cyc=$cyc
grd=$1

mkdir -p $DATA_IN/datadone

typeset -Z2 HH
typeset -Z2 HH1
if [ ${grd} = '130' ] ; then
 grid="130 3 451 337 16281 -126138  8 -95000 13545 13545 0 64   0 25000 25000 0 0"                 #to 13km RAP grid
else
 grid=$grd
fi

 #times is previous hours (ie forecaste hours of NAM).   
 if   [ $narre_cyc = '00' -o $narre_cyc = '06' -o $narre_cyc = '12' -o $narre_cyc = '18' ] ; then  
  times=' 6 12 18 24'
 elif [ $narre_cyc = '03' -o $narre_cyc = '09' -o $narre_cyc = '15' -o $narre_cyc = '21' ] ; then
  times='  3 9 15 21'
 elif [ $narre_cyc = '04' -o $narre_cyc = '10' -o $narre_cyc = '16' -o $narre_cyc = '22' ] ; then
  times='  4 10 16 22' 
 elif [ $narre_cyc = '05' -o $narre_cyc = '11' -o $narre_cyc = '17' -o $narre_cyc = '23' ] ; then
  times='  5 11 17 23'
 elif [ $narre_cyc = '01' -o $narre_cyc = '07' -o $narre_cyc = '13' -o $narre_cyc = '19' ] ; then
  times='  7 13 19 25' 
 elif [ $narre_cyc = '02' -o $narre_cyc = '08' -o $narre_cyc = '14' -o $narre_cyc = '20' ] ; then
  times='  8 14 20 26'
 fi

 echo 'narre_cyc:' $PDY $narre_cyc 'times:' $times

wgrb=/nwprod/util/exec

for time in $times ; do

  NAM_YMDH=` /nwprod/util/exec/ndate -$time ${PDY}${narre_cyc}`
  NAM_dir=`echo $NAM_YMDH | cut -c 1-8`
  NAM_cyc=`echo $NAM_YMDH | cut -c 9-10`

  if [ ${grd} = '130' ] ; then
    NAM_head=$NAMprod/nam.${NAM_dir}/nam.t${NAM_cyc}z.awphys                    #2d surface data
    NAM_awip12=$NAMprod/nam.${NAM_dir}/nam.t${NAM_cyc}z.awip12                  #3d pressure level data
  elif [ ${grd} = '242' ]; then
    NAM_head=$NAMprod/nam.${NAM_dir}/nam.t${NAM_cyc}z.awip32
  fi

   scrub1=${DATA_IN}/scrub1_$grd/narre.${NAM_dir}
   scrub2=${DATA_IN}/scrub2_$grd/narre.${NAM_dir}

  if [ ! -d $scrub1 ] ; then
    mkdir -p $scrub1
  fi

  if [ ! -d $scrub2 ] ; then
    mkdir -p $scrub2
  fi

  for fhr in 1 2 3 4 5 6 7 8 9 10 11 12 ; do    # fhr is narre's forecast hours

   HH=`expr $fhr + $time` 
   NAM_grib=${NAM_head}${HH}.tm00

   if [ -s $NAM_grib ] ; then 

     
       cd $scrub2

       if [ ${grd} = '130' ] ; then         #Note: for NAM-218: no ceiling, so retrieve ceiling from awip12 and append it to awphys
          rm -f awip12.f${HH}
          $wgrb/wgrib $NAM_awip12${HH}.tm00 |grep "kpds5=7:kpds6=215" |$wgrb/wgrib -i -grib $NAM_awip12${HH}.tm00 -o awip12.f${HH}
       fi

       NAM_grib_narre=$scrub2/nam.t${NAM_cyc}z.pgrb${grd}.f${HH}
  
       if [ ! -s $NAM_grib_narre ] ; then

      
          $EXECnarre/narre_fastcopygb -g"$grid" -i0,1 -x $NAM_grib  $NAM_grib_narre

         if [ ${grd} = '130' ] ; then       #only for NAM-218, there is no ceiling, so append it         
            $EXECnarre/narre_fastcopygb -g"$grid" -i0,1 -x awip12.f${HH} awip12_grib${grd}.f${HH}
           cat awip12_grib${grd}.f${HH} >> $NAM_grib_narre
         fi
 
         cd $scrub2
 
         echo nam.t${NAM_cyc}z.pgrb${grd}.f${HH} ${grd}|$EXECnarre/narre_cat #Note: output is nam.t${NAM_cyc}z.pgrb${grd}.f${HH}.out files
       
         cat $NAM_grib_narre >> $scrub1/nam.t${NAM_cyc}z.pgrb${grd}.f${HH}
         cat nam.t${NAM_cyc}z.pgrb${grd}.f${HH}.out >> $scrub1/nam.t${NAM_cyc}z.pgrb${grd}.f${HH}
         rm -f nam.t${NAM_cyc}z.pgrb${grd}.f${HH}.out

         ####Note:  split 1hr precip data from $NAM_grib_narre
         HH1=`expr $HH - 1` 
         echo nam.t${NAM_cyc}z.pgrb${grd}.f${HH1} nam.t${NAM_cyc}z.pgrb${grd}.f${HH} $NAM_cyc $HH1 $HH ${grd}|$EXECnarre/narre_precip
         cat nam.t${NAM_cyc}z.pgrb${grd}.f${HH}.prcp >> $scrub1/nam.t${NAM_cyc}z.pgrb${grd}.f${HH} 
         rm -f nam.t${NAM_cyc}z.pgrb${grd}.f${HH}.prcp

       else
         echo $NAM_grib_narre ' already existing!'
       fi

    else
       echo $NAM_grib ' not existing, skip it!'
    fi
 
  done   

done        

echo 'finish for NAM cyc ' $cyc ' grid' $grd  >> $DATA_IN/datadone/done4NAMcyc${cyc}grid$grd 
ls -l $DATA_IN/datadone/done4NAMcyc${cyc}grid$grd

if [ $grd = 130 ]; then
  $SMSBIN/setev release_ensprod
fi

exit

