###################################################################
echo "----------------------------------------------------"
echo "exnawips - convert NCEP GRIB files into GEMPAK Grids"
echo "----------------------------------------------------"
echo "History: Mar 2000 - First implementation of this new script."
#####################################################################
# All creatures great and small are ordered not to touch this file 
# under pain of death !!!
# Special nawips for goestb
cd $DATA

set -xa
msg="Begin job for $job"
postmsg "$jlogfile" "$msg"

#
NAGRIB_TABLE=/nwprod/gempak/fix/nagrib.tbl
NAGRIB=nagrib_nc
#

entry=`grep "^$RUN " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}'`

if [ "$entry" != "" ] ; then
  cpyfil=`echo $entry  | awk 'BEGIN {FS="|"} {print $2}'`
  garea=`echo $entry   | awk 'BEGIN {FS="|"} {print $3}'`
  gbtbls=`echo $entry  | awk 'BEGIN {FS="|"} {print $4}'`
  maxgrd=`echo $entry  | awk 'BEGIN {FS="|"} {print $5}'`
  kxky=`echo $entry    | awk 'BEGIN {FS="|"} {print $6}'`
  grdarea=`echo $entry | awk 'BEGIN {FS="|"} {print $7}'`
  proj=`echo $entry    | awk 'BEGIN {FS="|"} {print $8}'`
  output=`echo $entry  | awk 'BEGIN {FS="|"} {print $9}'`
else
  cpyfil=gds
  garea=dset
  gbtbls=
  maxgrd=4999
  kxky=
  grdarea=
  proj=
  output=T
fi  
pdsext=no

#
# Alert stats.short file if this is the GFDL
#
if [ $RUN = "ghm" -a "$GRIB" = "grib.f" -a $SENDDBN = "YES" ] ; then
  $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \
   $COMIN/${model}.${PDY}${cyc}.stats.short
fi

maxtries=180
fhcnt=$fstart
while [ $fhcnt -le $fend ] ; do
  if [ $fhcnt -ge 100 ] ; then
    typeset -Z3 fhr
  else
    typeset -Z2 fhr
  fi
  fhr=$fhcnt

  fhr3=$fhcnt
  typeset -Z3 fhr3
  GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT}
  GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}

  case $RUN in
   threats) GEMGRD=${model}_${PDY}${cyc}f${fhr3} ;;
   rucs)  GRIBIN=$COMIN/${model}.${cycle}.pgrbanl 
          GEMGRD=${RUN}_${PDY}${cyc} 
          maxtries=30;;
   ruc2)
     if [ $fhcnt -eq 00 ] ; then
       GRIBIN=$COMIN/${model}.${cycle}.pgrbanl
     fi ;;
   ruc20)
     if [ $fhcnt -eq 00 ] ; then
       GRIBIN=$COMIN/${model}.${cycle}.pgrb20anl
     fi ;;
   nww3 | akw | wna | nah | enp | nph)  GRIBIN=$COMIN/${model}.${cycle}.${GRIB} 
                      GEMGRD=${RUN}_${PDY}${cyc} ;;
   mww3) GRIBIN=$COMIN/multi_1.glo_30m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3ak10m) GRIBIN=$COMIN/multi_1.ak_10m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3ak4m) GRIBIN=$COMIN/multi_1.ak_4m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3wna10m) GRIBIN=$COMIN/multi_1.at_10m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3wna4m) GRIBIN=$COMIN/multi_1.at_4m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3wc10m) GRIBIN=$COMIN/multi_1.wc_10m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3wc4m) GRIBIN=$COMIN/multi_1.wc_4m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   mww3enp10m) GRIBIN=$COMIN/multi_1.ep_10m.${cycle}.grib2
         GEMGRD=${RUN}_${PDY}${cyc}
         NAGRIB=nagrib2 ;;
   wave_ens)  GRIBIN=$COMIN/${model}.${cycle}.${GRIB} 
                      GEMGRD=${model}_${PDY}${cyc} ;;
   ofs)  if [ $fhr3 = "000" ]
         then
            fhr3_ofs="n000"
         else
            fhr3_ofs="f$fhr3"
         fi 
         GRIBIN=$COMIN/${RUN}_atl.${cycle}.${fhr3_ofs}.${model}.${GRIB} 
         if [ $model = "atl" ]
         then
            GEMGRD=watl_${PDY}${cyc}f${fhr3}
         elif [ $model = "gm" ]
         then
            GEMGRD=gmex_${PDY}${cyc}f${fhr3}
         elif [ $model = "gs" ]
         then
            GEMGRD=gstr_${PDY}${cyc}f${fhr3}
         else
            GEMGRD=${model}_${PDY}${cyc}f${fhr3}
         fi
         ;; 
   ice)   GRIBIN=$COMIN/${model}${RUN}.${cycle}.grb
          GEMGRD=${RUN}_${PDY}${cyc} ;;
   rtma2p5)  GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1
              GEMGRD=${RUN}_${PDY}${cyc}f000 ;;
   akrtma)  GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1
            GEMGRD=${RUN}_${PDY}${cyc}f000 ;;
   hirtma) GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1
           GEMGRD=${RUN}_${PDY}${cyc}f000 ;;
   prrtma) GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1
           GEMGRD=${RUN}_${PDY}${cyc}f000 ;;
   gurtma) GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1
           GEMGRD=${RUN}_${PDY}${cyc}f000 ;;
   smartconus) GRIBIN=$COMIN/nam.${cycle}.smartconus${fhr}.tm00
	       GEMGRD=smartconus_${PDY}${cyc}f${fhr} ;;
   smartak) GRIBIN=$COMIN/nam.${cycle}.smartak${fhr}.tm00
	       GEMGRD=smartak_${PDY}${cyc}f${fhr} ;;
   smarthi) GRIBIN=$COMIN/nam.${cycle}.smarthi${fhr}.tm00
               GEMGRD=smarthi_${PDY}${cyc}f${fhr} ;;
   smartpr) GRIBIN=$COMIN/nam.${cycle}.smartpr${fhr}.tm00
               GEMGRD=smartpr_${PDY}${cyc}f${fhr} ;;
   nam_goes218) cp /nwprod/gempak/fix/model/nam/goes_ncepgrib2.tbl ./ncepgrib2.tbl
                cp /nwprod/gempak/fix/model/nam/goes_ncepgrib129.tbl ./ncepgrib129.tbl
                cp /nwprod/gempak/fix/model/nam/goes_vcrdgrib1.tbl ./vcrdgrib1.tbl
                cp /nwprod/gempak/fix/model/nam/goes_wmogrib2.tbl ./wmogrib2.tbl
		GRIBIN=$COMIN/nam.${cycle}.goes218${fhr}.tm00
               GEMGRD=nam_goes218_${PDY}${cyc}f${fhr} ;;
   nam_goes221) cp /nwprod/gempak/fix/model/nam/goes_ncepgrib2.tbl ./ncepgrib2.tbl
                cp /nwprod/gempak/fix/model/nam/goes_ncepgrib129.tbl ./ncepgrib129.tbl
                cp /nwprod/gempak/fix/model/nam/goes_vcrdgrib1.tbl ./vcrdgrib1.tbl
                cp /nwprod/gempak/fix/model/nam/goes_wmogrib2.tbl ./wmogrib2.tbl 
                GRIBIN=$COMIN/nam.${cycle}.goes221${fhr}.tm00
               GEMGRD=nam_goes221_${PDY}${cyc}f${fhr} ;;
   nam_goes243) cp /nwprod/gempak/fix/model/nam/goes_ncepgrib2.tbl ./ncepgrib2.tbl
                cp /nwprod/gempak/fix/model/nam/goes_ncepgrib129.tbl ./ncepgrib129.tbl
                cp /nwprod/gempak/fix/model/nam/goes_vcrdgrib1.tbl ./vcrdgrib1.tbl
                cp /nwprod/gempak/fix/model/nam/goes_wmogrib2.tbl ./wmogrib2.tbl 
               GRIBIN=$COMIN/nam.${cycle}.goes243${fhr}.tm00
               GEMGRD=nam_goes243_${PDY}${cyc}f${fhr} ;;
   vaftad | hysplit) GRIBIN=$COMOUT/${VNAME}.e${EPDY}${ECYC}.r${PDY}${cyc}.grib
           vname=`echo $VNAME | tr [A-Z] [a-z]`
           meteo=`echo $meteo | tr [A-Z] [a-z]`
           COMOUT=/com/nawips/${envir}/${NET}.${PDY}
           typeset -Z2 NEWECYC
           let NEWECYC=\($ECYC+1\)/3*3
           if test $NEWECYC -eq 24
           then
             NEWECYC="00"  
             NEWEPDY=`/nwprod/util/ush/finddate.sh $EPDY d+1`
           else
             NEWEPDY=$EPDY
           fi
           GEMGRD=hy_${meteo}_${EPDY}${ECYC}_${vname}
           echo $COMOUT/$GEMGRD > $DATA/gempak_file.vaftad
           mkdir -p -m 775 $COMOUT ;;
   ghm)   GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr}
          if [ $GRIB = "grib.f" ] ; then
            GEMGRD=${RUN}g_${PDY}${cyc}f${fhr3}_${model}
          elif [ $GRIB = "gribn3.f" ] ; then
            GEMGRD=${RUN}n_${PDY}${cyc}f${fhr3}_${model}
          else
            GEMGRD=${RUN}6th_${PDY}${cyc}f${fhr3}_${model}
          fi ;;
   ghmc)   GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr}
          if [ $GRIB = "gfdc.grib.f" ] ; then
            GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}_${model}g
          else
            GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}_${model}n
          fi ;;
   hwrf)  GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr}
          if [ $GRIB = "hwrfprs_n.grbf" ] ; then
            GEMGRD=${RUN}n_${PDY}${cyc}f${fhr3}_${model}
          elif [ $GRIB = "hwrfprs_p.grbf" ] ; then
            GEMGRD=${RUN}p_${PDY}${cyc}f${fhr3}_${model}
          else
            GEMGRD=${RUN}c_${PDY}${cyc}f${fhr3}_${model}
          fi ;;
   ecmwf_glob | ecmwf_trop)  GRIBIN=$COMIN/${model}.${cycle}
          GEMGRD=${RUN}_${PDY}${cyc} ;;
   ecmwf_hr)
          GRIBIN=$DATA/${RUN}.t${cyc}z.pgrb${fhr}
          ;;
   ukmet) GRIBIN=$COMIN/${RUN}.${cycle}.${GRIB}${fhr}${EXT}
          GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;;
   ukmet2)  $utilexec/wgrib ukmet2.grib | grep "${fhr}hr" | $utilexec/wgrib \
          -i -grib -o ukmet2.${fhr} ukmet2.grib
          GRIBIN=ukmet2.${fhr}
          GEMGRD=ukmet_${PDY}${cyc}f${fhr3} ;;
   ens*)  GRIBIN=$COMIN/${model}.${member}.${PDY}.${cyc}
          GEMGRD=${RUN}_${PDY}${cyc} ;;
    ge*)  if test "$model" = "bc" 
          then
             GRIBIN=$COMIN/${RUN}.${cycle}.pgrba_bcf${fhr}
             GEMGRD=${RUN}bc_${PDY}${cyc}f${fhr3}
          else
             GRIBIN=$COMIN/${RUN}.${cycle}.pgrbaf${fhr}
             GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}
          fi;;
   cmc_ge*)GRIBIN=$COMIN/${RUN}.${cycle}.pgrbaf${fhr}
          GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;;
   sref)  if test "$model" = "eta" -o "$model" = "rsm" -o "$model" = "nmm" -o "$model" = "em"
          then
             GRIBIN=$COMIN/${RUN}_${model}.${cycle}.pgrb212.${member}
             GEMGRD=${RUN}_${PDY}${cyc}_${model}_${member}
          else
             GRIBIN=$COMIN/${RUN}.${cycle}.pgrb212.${member}
             GEMGRD=${RUN}_${PDY}${cyc}_${member}
	     pdsext=YES
          fi;;
   mdlngm) GRIBIN=$COMIN/ngmmosgrib.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   mdlngmsvr) GRIBIN=$COMIN/ngmmoscatstmgrb.${cycle}
              GEMGRD=${model}_${PDY}${cyc} ;;
   mdlmrf) GRIBIN=$COMIN/mrfmosgrib.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   mdlgfs) GRIBIN=$COMIN/gfsmosgrib.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   mdlgfssvr) GRIBIN=$COMIN/mdl_mavgribtsvr.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   mdlnamsvr) GRIBIN=$COMIN/mdl_metgribtsvr.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   mdlmrfsvr) GRIBIN=$COMIN/mdl_mexgribtsvr.${cycle}
           GEMGRD=${model}_${PDY}${cyc} ;;
   nam40)  cp /nwprod/gempak/fix/model/nam/* . ;;
   dgex) if [ $cyc = 00 -o $cyc = 12 ]
         then
            export model=dgex_alaska
            export GRIB=awp186
         else
            export model=dgex_conus
            export GRIB=awp185
         fi

         GEMGRD=dgex_${PDY}${cyc}f${fhr3}
         GRIBIN=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT}
         ;;
   hiresw) GRIBIN=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT}
           GEMGRD=hiresw_${model}_${PDY}${cyc}f${fhr3} 
         ;;
   sst)  GRIBIN=$COMIN/rtgssthr_grb_0.083_awips
	 GEMGRD=rtgsst_${GRIB}_${PDY}00
         ;;
   gfs35_pac | gfs35_atl | gfs40 | gfs_asbkup)  GRIBIN=$COMIN/gfs.t${cyc}z.master.grbf${fhr}
         GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}
         ;;
  esac

  if [ $RUN = "ngm" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}
  elif [ $RUN = "gfs" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}
  elif [ $RUN = "gfshd" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}${EXT}
  elif [ $RUN = "gdas" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}
  elif [ $RUN = "mrf" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}
  elif [ $RUN = "nww3" -o $RUN = "akw" -o $RUN = "wna" -o $RUN = "nah" -o $RUN = "enp" -o $RUN = "nph" ] ; then
    GRIBIN_chk=$COMIN/${model}.${cycle}.${GRIB}done 
  elif [ $RUN = "dgex" ] ; then
    GRIBIN_chk=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT}_icwf
  elif [ $RUN = "gfs35_pac" -o $RUN = "gfs35_atl" -o $RUN = "gfs40" -o $RUN = "gfs_asbkup" ] ; then
    GRIBIN_chk=$COMIN/gfs.t${cyc}z.master.grbif${fhr}
  elif [ $RUN = "ofs" ] ; then
    GRIBIN_chk=$COMIN/${RUN}_atl.t${cyc}z.${fhr3_ofs}.${model}.$GRIB.grib2.idx
  else
    GRIBIN_chk=$GRIBIN
  fi

  icnt=1
  while [ $icnt -lt 1000 ]
  do
    if [ -r $GRIBIN_chk ] ; then
#    if [ -s $GRIBIN_chk ] ; then
      break
    else
      let "icnt=icnt+1"
      sleep 20
    fi
    if [ $icnt -ge $maxtries ]
    then
      msg="ABORTING after 1 hour of waiting for F$fhr to end."
      err_exit $msg
    fi
  done

  case $RUN in
   dgex)
     cat $GRIBIN $GRIBIN_chk > tmpgrib$fhr
     /nwprod/util/exec/copygb -g 104 -x tmpgrib$fhr grib$fhr
     ;;
   gfs_asbkup)
     /nwprod/util/exec/copygb -g "255 0 90 55 55000 -140000 128 0 -50000 1000 1000 0" -x $GRIBIN grib$fhr
     ;;
   sst)
     if [ $GRIB = "atl" ] ; then
       /nwprod/util/exec/copygb -g "255 0 540 840 50000 -100000 128 5000 -30000 083 083 0" -x $GRIBIN grib$fhr
     else
       # Assume Pacific region
       /nwprod/util/exec/copygb -g "255 0 660 960 60000 -170000 128 5000 -90000 083 083 0" -x $GRIBIN grib$fhr
     fi
     ;;
   nam64)
       /nwprod/util/exec/wgrib $GRIBIN | grep -f /nwprod/gempak/fix/nam64.awc.parmlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
       /nwprod/util/exec/copygb -g "255 3 175 139 1000 -145500 8 -107000 64926 64926 0 64 50000 50000" -x temp grib$fhr
     ;;
   gfs35_pac)
         /nwprod/util/exec/wgrib $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
         /nwprod/util/exec/copygb -g "255 0 416 186 75125 -230000 128 17000 -100000 312 312 0" -x temp grib$fhr
     ;;
   gfs35_atl)
         /nwprod/util/exec/wgrib $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
         /nwprod/util/exec/copygb -g "255 0 416 186 75125 -120000 128 17000 10000 312 312 0" -x temp grib$fhr
     ;;
   gfs40)
         /nwprod/util/exec/wgrib $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
         /nwprod/util/exec/copygb -g 212 -x temp grib$fhr
     ;;
   nam12)
       if [ $fhcnt%3 -eq 0 ] ; then
         /nwprod/util/exec/wgrib -s $GRIBIN | grep -f /nwprod/util/fix/wrf4spc12.parmlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
         /nwprod/util/exec/copygb -g 218 -x temp grib$fhr 
       else
         /nwprod/util/exec/wgrib -s $GRIBIN | grep -f /nwprod/util/fix/wrf4spc12_hourly.parmlist|/nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN
         /nwprod/util/exec/copygb -g 218 -x temp grib$fhr
       fi
     ;;
    ge*)  if test "$model" = "bc"
          then
             cp $GRIBIN grib$fhr
          else
             GRIBIN_B=$COMIN_B/${RUN}.${cycle}.pgrbbf${fhr}
             /nwprod/util/exec/wgrib -s $GRIBIN_B | grep "HGT:300 mb" | /nwprod/util/exec/wgrib -i -grib -o temp $GRIBIN_B
             cat $GRIBIN temp > grib$fhr
          fi
     ;;
   *)
     cp $GRIBIN grib$fhr
  esac

  if [ "$model" = "ensemble" -o $RUN = "sref" ] ; then
    export pgm="nagrib_nc $RUN"
  else
    export pgm="nagrib_nc F$fhr"
  fi
  startmsg

  $GEMEXE/$NAGRIB << EOF
   GBFILE   = grib$fhr
   INDXFL   = 
   GDOUTF   = $GEMGRD
   PROJ     = $proj
   GRDAREA  = $grdarea
   KXKY     = $kxky
   MAXGRD   = $maxgrd
   CPYFIL   = $cpyfil
   GAREA    = $garea
   OUTPUT   = $output
   GBTBLS   = $gbtbls
   GBDIAG   = 
   PDSEXT   = $pdsext
  l
  r
EOF
  export err=$?;err_chk

  #####################################################
  # GEMPAK DOES NOT ALWAYS HAVE A NON ZERO RETURN CODE
  # WHEN IT CAN NOT PRODUCE THE DESIRED GRID.  CHECK
  # FOR THIS CASE HERE.
  #####################################################
  if [ $model != "ukmet_early" ] ; then
    ls -l $GEMGRD
    export err=$?;export pgm="GEMPAK CHECK FILE";err_chk
  fi

  if [ "$NAGRIB" = "nagrib2" ] ; then
    gpend
  fi

  #
  # Create ZAGL level products for the 40 km NAM grid and the ruc
  #
  if [ "$RUN" = "nam40" -o "$RUN" = "ruc2" -o "$RUN" = "ruc20" ] ; then
    $GEMEXE/gdvint << EOF
     GDFILE   = $GEMGRD
     GDOUTF   = $GEMGRD
     GDATTIM  = f${fhr}
     GVCORD   = pres/zagl
     GLEVEL   = 500-9000-500
     MAXGRD   = 5000
     GAREA    = $garea
     VCOORD   = mslv;esfc
     l
     r
EOF
  fi

  #
  # Create theta level products for the 90 and 40 km NAM grids
  #
  if [ "$RUN" = "nam40" -o "$RUN" = "nam" ] ; then
    $GEMEXE/gdvint << EOF
     GDFILE   = $GEMGRD
     GDOUTF   = $GEMGRD
     GDATTIM  = f${fhr}
     GVCORD   = pres/thta
     GLEVEL   = 270-330-3
     MAXGRD   = 5000
     GAREA    = $garea
     VCOORD   = /l
     l
     r
EOF
  fi


  #
  # Create theta level prodcuts for the RUC
  # Delete 2 Hour Precip accumulations
  #
  if [ "$RUN" = "ruc2" -o "$RUN" = "ruc20" ] ; then
    $GEMEXE/gdvint << EOF
     GDFILE   = $GEMGRD
     GDOUTF   = $GEMGRD
     GDATTIM  = f${fhr}
     GVCORD   = pres/thta
     GLEVEL   = 270-330-3 
     MAXGRD   = 5000 
     GAREA    = 25;-120;50;-60 
     VCOORD   = /l 
     l
     r 
EOF
    if [ "$fhr" = "05" -o  "$fhr" = "08" -o "$fhr" = "11" ] ; then
      $GEMEXE/gddelt_gn << EOF
      GDFILE   = $GEMGRD
      GDATTIM  = f${fhr}
      GVCORD   = none
      GLEVEL   = 0
      GFUNC    = s02m;c02m
      l
      r
EOF
    fi
  fi
  if [ $SENDCOM = "YES" ] ; then
    mv $GEMGRD $COMOUT/$GEMGRD
    if [ $SENDDBN = "YES" ] ; then
      if [ $RUN = "nam" -a $fhcnt%3 -ne 0 ] ; then
        $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE_2} $job \
          $COMOUT/$GEMGRD
      else
        $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \
          $COMOUT/$GEMGRD
      fi
    else
    echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####"
    fi
  fi

  if [ $RUN = "ukmet" -a $fhcnt -ge 48 ] ; then
    let fhcnt=fhcnt+12
  elif [ $RUN = "gfs" -a $fhcnt -ge 180 ] ; then
    let fhcnt=fhcnt+12
  elif [ $RUN = "nam" -a $fhcnt -lt 36 ] ; then
    let fhcnt=fhcnt+1
  elif [ $RUN = "nam12" -a $fhcnt -lt 36 ] ; then
    let fhcnt=fhcnt+1
  else
    let fhcnt=fhcnt+finc
  fi
done

#####################################################################
# GOOD RUN
set +x
echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM"
echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM"
echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM"
set -x
#####################################################################

msg='Job completed normally.'
echo $msg
postmsg "$jlogfile" "$msg"

############################### END OF SCRIPT #######################