#!/bin/sh

#####################################################################
echo "Nam post processing for bgrdsf 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 "
echo "April 2011: Changed egrd3d to bgrd3d and bgrdsf to bgrdsf for"
echo "NAM Q32011 implementation"
#####################################################################

#####################################################################
#
# START FLOW OF CONTROL
#
# 1) Grab forecast hours to 84 
# 2) choose bgrdsf and bgrd3d 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 bgrd3d that we want

while [ "$fhr" -le "06" ]
 do
   grbfile="${RUN}.${cycle}.bgrd3d${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_BGB3D_GB2 $job $COMOUT/${grbfile}.grib2
        $DBNROOT/bin/dbn_alert MODEL NAM_BGB3D_GB2_WIDX $job $COMOUT/${grbfile}.grib2.idx
    fi
  fhr=$(($fhr+6))
 done
# Now we want to process all of the bgrdsf files out to 84 hours

fhr=0
retry_file=0
typeset -2Z fhr

while [ "$fhr" -le "84" ]
 do
   grbfile="${RUN}.${cycle}.bgrdsf${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 
