#!/bin/sh

#####################################################################
echo "Nam post processing for egrdsf and egrd3d files  "
echo "for conversion to grib2 format"
echo "Conceived May 2008"
echo "in an effort to run concurently with the post so as not to" 
echo "adversly affect product delivery time"
echo "Patrick O'Reilly and Bradley Mabe "
#####################################################################

#####################################################################
#
# START FLOW OF CONTROL
#
# 1) Grab forecast hours to 84 
# 2) choose egrdsf and egrd3d files 
# 3) use cnvgrib to convert to grib2
# 4) copy to comout
#####################################################################

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

#####################################################################

cd $DATA
fhr=0
retry_file=0
typeset -2Z fhr

# First we'll just process the two hours of egrd3d that we want

while [ "$fhr" -le "06" ]
 do
   grbfile="${RUN}.${cycle}.egrd3d${fhr}.tm00"
   while [ ! -s "${COMIN}/${grbfile}" ]
    do
      retry_file=$(($retry_file+1))
      if [ "$retry_file" -gt "10" ]; then
         msg="exiting after waiting for $grbfile to become available"
         err_exit $msg
      fi
      sleep 60
    done
    retry_file=0
    ####################################################################
    # Convert to grib2 format
    ####################################################################
    $CNVGRIB -g12 -p31 ${COMIN}/${grbfile} ./${grbfile}.grib2
    $WGRIB2 ./${grbfile}.grib2 -s > ./${grbfile}.grib2.idx

    if [ $SENDCOM = YES ]
     then
        mv ./${grbfile}.grib2 ${COMOUT}/.
        mv ./${grbfile}.grib2.idx ${COMOUT}/.
    fi

    if [ $SENDDBN_GB2 = YES ]
     then
        $DBNROOT/bin/dbn_alert MODEL NAM_EGB3D_GB2 $job $COMOUT/${grbfile}.grib2
        $DBNROOT/bin/dbn_alert MODEL NAM_EGB3D_GB2_WIDX $job $COMOUT/${grbfile}.grib2.idx
    fi
  fhr=$(($fhr+6))
 done
# Now we want to process all of the egrdsf files out to 84 hours

fhr=0
retry_file=0
typeset -2Z fhr

while [ "$fhr" -le "84" ]
 do
   grbfile="${RUN}.${cycle}.egrdsf${fhr}.tm00"
   while [ ! -s "${COMIN}/${grbfile}" ]
    do
      retry_file=$(($retry_file+1))
      if [ "$retry_file" -gt "10" ]; then
         msg="exiting after waiting for $grbfile to become available"
         err_exit $msg
      fi
      sleep 60
    done
   retry_file=0
   ####################################################################
   # Convert to grib2 format
   ####################################################################
   $CNVGRIB -g12 -p31 ${COMIN}/$grbfile ./${grbfile}.grib2
   $WGRIB2 ./${grbfile}.grib2 -s > ./${grbfile}.grib2.idx

   if [ $SENDCOM = YES ]
    then
      mv ./${grbfile}.grib2 ${COMOUT}/.
      mv ./${grbfile}.grib2.idx ${COMOUT}/.
   fi

   if [ $SENDDBN_GB2 = YES ]
    then
      $DBNROOT/bin/dbn_alert MODEL WRFEVAL_GB2 $job $COMOUT/${grbfile}.grib2
      $DBNROOT/bin/dbn_alert MODEL WRFEVAL_GB2_WIDX $job $COMOUT/${grbfile}.grib2.idx
   fi
   fhr=$(($fhr+3))
 done 
