#!/bin/sh

#######################################################################
#  Job Name:  exgfsmos_hrqpf_fcst.sh.sms
#  Purpose:   To run all steps neccessary to generate hrqpf forecasts
#
echo "------------------------------------------------"
echo "JGFSMOS_HRQPF_EXTFCST processing                "
echo "------------------------------------------------"
echo "History: Jul 1, 2011 - First implementation of this new script."
#
#
#######################################################################

if (( $# != 1 )); then
   echo "Syntax: $0 <REG>"
   echo "Example: $0 01"
   exit 1
fi

REG=`printf "%02s" $1`

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

echo $PDY $cyc: Date and Cycle - echo PDY and cyc

######################################################################
#
#   CREATE UNIQUE DATA DIRECTORY FOR EACH INDIVIDUAL RUN.
#
######################################################################

export DATA=${DATA_INIT}/${REG}
mkdir $DATA
cd $DATA

cp ${DATA_INIT}/ncepdate $DATA/
sh $utilscript/setup.sh

######################################################################
#
#   DETERMINE SEASON BASED ON PDY
#
######################################################################

month=`echo ${PDY} | cut -c5-6`

case $month in
  04 | 05 | 06 | 07 | 08 | 09 ) season="04010930";;
  01 | 02 | 03 | 10 | 11 | 12 ) season="10010331";;
esac

#######################################################################
#
#  COPY INPUT FILES FROM COM
#
#######################################################################

cp ${COMIN}/mdl_hrqpf_xpreds.${PDY}.t${cyc}z .
cp ${COMIN}/mdl_hrqpf_xprods.${PDY}.t${cyc}z . 

#######################################################################
#
# PROGRAM RACREATE - MOS-2000 PROGRAM WHICH CREATES RANDOM ACCESS
#                    FILES.  IN THIS CASE, THE CODE IS CREATING THE
#                    HRQPF RAW FORECAST FILE, USED IN EQNEVAL.
#
#######################################################################

echo QPFLOG: `date` - begin job RACREATE - CREATE MDL_HRQPF FORECAST FILE

msg="${job} begin racreate at `date`"
postmsg "${jlogfile}" "${msg}"

export pgm="mdl_racreate"
. prep_step
export XLFUNIT_50="${DATA}/mdl_hrqpf_rawxfcst.t${cyc}z.reg${REG}"

startmsg
${EXECmdl}/mdl_racreate < ${PARMmdl}/mdl_hrqpf_racreate.cn > ${pgmout} 2>errfile
export err=$?; err_chk

echo QPFLOG: `date` -  RACREATE ended

#######################################################################
#
#  PROGRAM RAINIT - INITIALIZES RANDOM ACCESS FILE WITH STATION CALL
#                   LETTERS (WHICH ARE GRID COORDINATES)
#
#######################################################################

echo QPFLOG: `date` - begin job RAINIT - INITIALIZE MDL_HRQPF FORECAST FILE

msg="${job} begin rainit at `date`"
postmsg "${jlogfile}" "${msg}"

export pgm="mdl_hrqpf_rainit"
. prep_step
export XLFUNIT_10="${DATA}/ncepdate"
export XLFUNIT_27="${FIXmdl}/mdl_hrqpf_stations.tbl"
export XLFUNIT_49="${DATA}/mdl_hrqpf_rawxfcst.t${cyc}z.reg${REG}"

startmsg
${EXECmdl}/mdl_hrqpf_rainit < ${PARMmdl}/mdl_hrqpf_rainit.cn >> ${pgmout} 2>errfile
export err=$?; err_chk

echo QPFLOG: `date` -  RAINIT ended

#######################################################################
#
#    PROGRAM EQNEVAL - CALCULATES RAW HRQPF FORECASTS FOR 6-H PERIODS
#
#######################################################################

echo QPFLOG: `date` - begin job EQNEVAL - MAKE HRQPF FORECAST FOR REGION ${REG}

cp ${PARMmdl}/mdl_hrqpf_eqneval.cn ${DATA}

msg="${job} begin eqneval 6-h periods  `date`"
postmsg "${jlogfile}" "${msg}"

export pgm="mdl_hrqpf_eqneval"
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_24="mdl_hrqpf_xpreds.${PDY}.t${cyc}z"
export XLFUNIT_25="mdl_hrqpf_xprods.${PDY}.t${cyc}z"
export XLFUNIT_26="${FIXmdl}/mdl_hrqpf_stations.tbl"
export XLFUNIT_28="${FIXmdl}/mdl_hrqpf_fcst.06h.tbl"
export XLFUNIT_29="${FIXmdl}/mdl_hrqpf_idtable"
export XLFUNIT_33="${FIXmdl}/mdl_hrqpf_xeqn.${season}.06h.t${cyc}z_reg${REG}_uc"
export XLFUNIT_34="${FIXmdl}/mdl_hrqpf_xeqn.${season}.06h.t${cyc}z_reg${REG}_cnd"
export XLFUNIT_45="${FIXmdl}/mdl_hrqpf_allclim.raf"
export XLFUNIT_49="mdl_hrqpf_rawxfcst.t${cyc}z.reg${REG}"

startmsg
${EXECmdl}/mdl_hrqpf_eqneval < ${DATA}/mdl_hrqpf_eqneval.cn >> ${pgmout} 2>errfile
export err=$?; err_chk

#######################################################################
#
#    PROGRAM EQNEVAL - CALCULATES RAW HRQPF FORECASTS FOR 12-H PERIODS
#
#######################################################################

echo QPFLOG: `date` - begin job EQNEVAL - MAKE HRQPF FORECAST FOR REGION ${REG}

msg="${job} begin eqneval 12-h periods `date`"
postmsg "${jlogfile}" "${msg}"

. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_24="mdl_hrqpf_xpreds.${PDY}.t${cyc}z"
export XLFUNIT_25="mdl_hrqpf_xprods.${PDY}.t${cyc}z"
export XLFUNIT_26="${FIXmdl}/mdl_hrqpf_stations.tbl"
export XLFUNIT_28="${FIXmdl}/mdl_hrqpf_fcst.12h.tbl"
export XLFUNIT_29="${FIXmdl}/mdl_hrqpf_idtable"
export XLFUNIT_33="${FIXmdl}/mdl_hrqpf_xeqn.${season}.12h.t${cyc}z_reg${REG}_uc"
export XLFUNIT_34="${FIXmdl}/mdl_hrqpf_xeqn.${season}.12h.t${cyc}z_reg${REG}_cnd"
export XLFUNIT_45="${FIXmdl}/mdl_hrqpf_allclim.raf"
export XLFUNIT_49="mdl_hrqpf_rawxfcst.t${cyc}z.reg${REG}"

startmsg
${EXECmdl}/mdl_hrqpf_eqneval < ${DATA}/mdl_hrqpf_eqneval.cn >> ${pgmout} 2>errfile
export err=$?; err_chk

######################################################################
#
#   SEND OUTPUT FILE TO COM
#
######################################################################

if test ${SENDCOM} = 'YES'
then
  cp ${DATA}/mdl_hrqpf_rawxfcst.t${cyc}z.reg${REG} ${COMOUT}
fi

echo QPFLOG: `date -u` - job mdl_hrqpf_eqneval.sh.sms ended

exit 0
