###################################################################
echo "----------------------------------------------------"
echo "exnawips - convert NCEP GRIB files into GEMPAK Grids"
echo "----------------------------------------------------"
echo "History: Mar 2000 - First implementation of this new script."
echo "Sept 2011 - First implementation of this new script based on
echo "               /nwprod/scripts/exnawips.sh.sms
#####################################################################

set -xa

cd $DATA

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

maxtries=15
fhcnt=$fstart

cat ${COMIN}/what_wave${RUN}_used.${cycle} | grep FNMOC
fused=$?
if [ ${fused} = '0' ]
then
   nmemb=`seq -w 0 40`
else
   nmemb=`seq -w 0 20`
   set +x
   echo "**********************************************"
   echo "******WARNING !! NO FNMOC MEMBERS FOUND*******"
   echo "* CREATING GEMPAK GRIDS FOR NCEP MEMBERS ONLY*"
   echo "**********************************************"
   set -x
fi

for memb in $nmemb mean probab spread
do
  GRIBIN=${COMIN}/HTSGW_${memb}.${cycle}.grib2

  if [ ${memb} == 'mean' -o ${memb} == 'probab' -o ${memb} == 'spread' ]
  then
     GEMGRD=htsgw_${memb}_${PDY}${cyc}
  else
     GEMGRD=htsgw_${memb}m_${PDY}${cyc}
  fi

  NAGRIB=nagrib2

  GRIBIN_chk=$GRIBIN


  if [ $fhcnt -ge 100 ] ; then
    typeset -Z3 fhr
  else
    typeset -Z2 fhr
  fi
  fhr=$fhcnt

  fhr3=$fhcnt
  typeset -Z3 fhr3

  icnt=1
  while [ $icnt -lt 1000 ]
  do
    if [ -r $GRIBIN_chk ] ; then
      break
    else
      let "icnt=icnt+1"
      sleep 20
    fi
    if [ $icnt -ge $maxtries ]
    then
      msg="ABORTING after 5 minutes of waiting for $GRIBIN."
      err_exit $msg
      export err=1; err_chk
    fi
  done

  cp $GRIBIN grib_${memb}

  startmsg

  $GEMEXE/$NAGRIB << EOF
   GBFILE   = grib_${memb}
   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=$?;pgm=$NAGRIB;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.
  #####################################################
  ls -l $GEMGRD
  export err=$?;export pgm="GEMPAK CHECK FILE";err_chk

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

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

  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 #######################
