###################################################################
echo "----------------------------------------------------"
echo "exnawips_gefs_bias.sh.sms - convert NCEP GRIB files into GEMPAK Grids for GEFS Bias"
echo "----------------------------------------------------"
echo "History: Jan 2012 - First implementation of this new script."
#####################################################################

set -xa

cd $DATA

msg="Begin job for $job"
postmsg "$jlogfile" "$msg"

#
NAGRIB_TABLE=/nwprod/gempak/fix/nagrib.tbl
utilfix_nam=${utilfix_nam:-/nwprod/util/fix}
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

maxtries=3
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}

  if test "$model" = "me"
  then
    GRIBIN=$COMIN/${RUN}.${cycle}.pgrba_${model}f${fhr}
    GEMGRD=${RUN}${model}_${PDY}${cyc}f${fhr3}
  elif test "$model" = "glbanl"
  then
    GRIBIN=$COMIN/${model}.${cycle}.pgrba_mdf${fhr}
    GEMGRD=${model}_${PDYm2}${cyc}f${fhr3}
  else
    echo "Invalid model"
    exit
  fi

  icnt=1
  skip=0
  while [ $icnt -lt 1000 ]
  do
    if [[ -r $GRIBIN ]] ; then
      break
    else
      let "icnt=icnt+1"
      sleep 20
    fi
    if [ $icnt -ge $maxtries ]
    then
      msg="Skipping F$fhr after 1 minutes of waiting."
      echo $msg
      skip=1
      break
    fi
  done

  if [ $skip = 0 ]; then
    cp $GRIBIN grib$fhr

    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 [ "$NAGRIB" = "nagrib2" ] ; then
      gpend
    fi

    if [ $SENDCOM = "YES" ] ; then
       mv $GEMGRD $COMOUT/$GEMGRD
       if [ $SENDDBN = "YES" ] ; then
           $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \
           $COMOUT/$GEMGRD
       else
         echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####"
       fi
    fi

  fi      # skip
  let fhcnt=fhcnt+finc
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 #######################
