#!/bin/ksh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         nam_prdgen6.sh
# Script description:  Run nam product generator jobs
#
# Author:        Eric Rogers       Org: NP22         Date: 1999-06-23
#
# Abstract: This script runs the Nam PRDGEN jobs
#
# Script history log:
# 1999-06-23  Eric Rogers
# 1999-08-25  Brent Gordon  Pulled the PRDGEN here file out of the post
#                           jobs into this script.
# 2006-10-31  Eric Rogers   This script creates NAM grids over the CONUS
#                           and Hawaii for AFWA
#                           Grids are only made a 3-h intervals.
#

set -x

export fhr=$1
export hswitch=$2
export PS4='PRDGEN${fhr}_T$SECONDS + '

cd $DATA/prdgen6_${fhr}
sh $utilscript/setup.sh

cat >input6${fhr}.prd <<EOF5
$DATA/BGDAWP${fhr}.tm00
EOF5

# NAM grids for AFWA only made at 3-hourly intervals, so just exit script
# with condition code=0 if hswitch not equal to zero

if [ $hswitch -eq 0 ] ; then

export pgm=nam_prdgen;. prep_step
export XLFUNIT_10="master6.${fhr}.ctl"
export XLFUNIT_21="$FIXnam/nam_wgt_180"
export XLFUNIT_22="$FIXnam/nam_wgt_182"
export XLFUNIT_41="$PARMnam/nam_kwbx.tbl"
export XLFUNIT_42="$PARMnam/nam_time.tbl"
export XLFUNIT_43="$PARMnam/nam_parm.tbl"
export XLFUNIT_44="$PARMnam/nam_grid.tbl"
export XLFUNIT_45="$PARMnam/nam_levl.tbl"
$EXECnam/nam_prdgen < input6${fhr}.prd > $DATA/prdgen6.out${fhr}
export err=$?;err_chk

#######################################################
# Generate 3-hour precip for on-time runs.
#######################################################

file="afwacs afwahi"
                                                                                  
for region in $file
do
                                                                                  
REGION=`echo $region | tr '[a-z]' '[A-Z]'`

if [ $cyc -eq 00 -o $cyc -eq 12 ] ; then
  if [ $fhr -ne 00 -a $fhr -ne 03 -a $fhr -ne 15 -a $fhr -ne 27 -a \
       $fhr -ne 39 -a $fhr -ne 51 -a $fhr -ne 63 -a $fhr -ne 75 ] ; then
    $utilexec/grbindex nam.${REGION}${fhr} ${REGION}i${fhr}
    let fhr3=fhr-3
    typeset -Z2 fhr3
    #
    # Make sure fhr3 prdgen files are available before
    # proceeding.
    #
    ic=0
    while [ ! -r $COMOUT/${RUN}.${cycle}.${region}${fhr3}.tm00 ] ; do
      let ic=ic+1
      if [ $ic -gt 60 ] ; then
        err_exit "F$fhr PRDGEN GIVING UP AFTER 15 MINUTES WAITING FOR F$fhr3 files"
      fi
      sleep 15
    done

    cp $COMOUT/${RUN}.${cycle}.${region}${fhr3}.tm00 ${fhr}.nam.${REGION}${fhr3}
    $utilexec/grbindex ${fhr}.nam.${REGION}${fhr3} ${fhr}.${REGION}i${fhr3}.tm00
    cp nam.${REGION}${fhr} ${fhr}.nam.${REGION}${fhr}
    cp ${REGION}i${fhr} ${fhr}.${REGION}i${fhr}.tm00

    export pgm=nam_makeprecip_${region};. prep_step
    export XLFUNIT_13="${fhr}.nam.${REGION}${fhr3}"
    export XLFUNIT_14="${fhr}.${REGION}i${fhr3}.tm00"
    export XLFUNIT_15="${fhr}.nam.${REGION}${fhr}"
    export XLFUNIT_16="${fhr}.${REGION}i${fhr}.tm00"
    export XLFUNIT_50="3precip_${region}.${fhr}"
    export XLFUNIT_51="3cprecip_${region}.${fhr}"
    export XLFUNIT_52="3sprecip_${region}.${fhr}"
    $EXECnam/nam_makeprecip_${region} <<EOF >>$pgmout 2>errfil
$fhr $fhr3
EOF
    export err=$?;err_chk

    cat 3precip_${region}.${fhr} >> nam.${REGION}${fhr}
    cat 3cprecip_${region}.${fhr} >> nam.${REGION}${fhr}
    cat 3sprecip_${region}.${fhr} >> nam.${REGION}${fhr}
  fi
fi

# make GRIB2 version of AFWA grid
( $utilexec/cnvgrib -g12 -p40 nam.${REGION}${fhr} nam.${REGION}${fhr}.grb2 

if test $SENDCOM = 'YES'
then
#    $utilexec/grbindex nam.${REGION}${fhr} ${REGION}i${fhr}
#    mv ${REGION}i${fhr} $COMOUT/${RUN}.${cycle}.${region}i${fhr}
    mv nam.${REGION}${fhr} $COMOUT/${RUN}.${cycle}.${region}${fhr}.tm00

#    $utilexec/wgrib2 nam.${REGION}${fhr}.grb2 -s > nam.${REGION}${fhr}.grb2.idx
    mv nam.${REGION}${fhr}.grb2 $COMOUT/${RUN}.${cycle}.${region}${fhr}.grb2.tm00
#    mv nam.${REGION}${fhr}.grb2.idx $COMOUT/${RUN}.${cycle}.${region}${fhr}.grb2.tm00.idx 

    if test $SENDDBN = 'YES'
    then
#     $DBNROOT/bin/dbn_alert MODEL NAM_${REGION} $job $COMOUT/${RUN}.${cycle}.${region}${fhr}.tm00
#     $DBNROOT/bin/dbn_alert MODEL NAM_${REGION}I $job $COMOUT/${RUN}.${cycle}.${region}i${fhr}.tm00
     $DBNROOT/bin/dbn_alert MODEL NAM_${REGION}_GB2 $job $COMOUT/${RUN}.${cycle}.${region}${fhr}.grb2.tm00
#     $DBNROOT/bin/dbn_alert MODEL NAM_${REGION}_GB2_WIDX $job $COMOUT/${RUN}.${cycle}.${region}${fhr}.grb2.tm00.idx 
    fi
fi ) &

#end region loop
done

# end hswitch test
fi

# NAM grids for AFWA only made at 3-hourly intervals, so just exit script
# with condition code=0 if hswitch not equal to zero

wait

if test "$SENDSMS" = 'YES'
then
  $SMSBIN/setev post_6_complete
fi

echo EXITING $0

wait
