#!/bin/sh
#######################################################################
#  Job Name: exgfs_extcoopmos.sh.sms
#  Purpose: To run all steps necessary to create extended-range GFS
#           MOS fcsts for the coop and RFC sites.  This job runs at
#           00 and 12z.
#  Remarks:
#  HISTORY: May  7, 2004      - new script
#           Jan 21, 2005 RLC  - Added mesowest sites w/temp and wind
#                               to the script.  Changed some filenames
#           Mar 03, 2005 RLC  - Set up script to run in gridded MOS
#                               paradigm in parallel.  Now it only
#                               runs through the post-processor.  The
#                               products and archiving will be done
#                               in a subsequent script.
#           Sep 13, 2005 RLC  - Added hard stop if short-range random
#                               access file isn't found.
#
#######################################################################
#
echo MDLLOG: `date` - Begin job exgfs_extcoopmos.sh.sms
set -x

cd $DATA

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

export DAT="$PDY$cyc"

#
#######################################################################
#
#    THIS JOB USES THE RANDOM ACCESS FILES FIRST CREATED IN THE
#    EXECUTION OF EXGFS_COOPMOS.  CHECK IF THE FILE MDL_GFSCPMOS.TXXZ
#    EXISTS IN COM/GFS.  IF IT DOES, COPY THE FILE TO THE WORK SPACE.
#    IF IT DOES NOT THE SCRIPT WILL ABORT.  EXGFS_EXTCOOPMOS WILL
#    NOT WORK UNLESS EXGFS_COOPMOS HAS ALREADY RUN SUCCESSFULLY.
#
#######################################################################
#
if [ ! -f $COMIN/mdl_gfscpmos.$cycle ]
        then echo 'need successful run of gfsmos_cooprfcmeso_fcst to run properly' >> $pgmout
        export err=1;err_chk
fi

cp $COMIN/mdl_gfscpmos.$cycle .



#######################################################################
# COPY MDL MODEL FILES FROM /COM TO TEMP SPACE
#######################################################################

  cp $COMIN/mdl_gfspkd.$cycle gfspkd.$cycle
  cp $COMIN/mdl_gfsxpkd.$cycle gfsxpkd.$cycle

#
#######################################################################
#
#    EXECUTION OF PROGRAM MOSPRED FOR MODEL DATA
#    MOSPRED - USED TO INTERPOLATE TO STATIONS FROM MDL GRID-POINT
#              ARCHIVE FILES AND TO PROCESS/COMBINE VECTOR DATA.
#
#######################################################################

echo MDLLOG: `date` - begin job MOSPRED - INTERPOLATE MODEL DATA
export pgm=mdl_mospred
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_23="gfspkd.$cycle"
export XLFUNIT_24="gfsxpkd.$cycle"
export XLFUNIT_26="$FIXmdl/mdl_cooprfcmnsta.lst"
export XLFUNIT_27="$FIXmdl/mdl_cooprfcmnsta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_gfsxcpprd"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_griddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_constcooprfcmn"
export XLFUNIT_60="gfsxcpmodel.$DAT"
startmsg
$EXECmdl/mdl_mospred < $PARMmdl/mdl_gfsxpredmdl.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  First use of MOSPRED ended

#
#######################################################################
#
#    PROGRAM EQNEVAL - CALCULATES MOS FORECASTS
#
#######################################################################

echo MDLLOG: `date` - begin job EQNEVAL - MAKE MOS FORECASTS
export pgm=mdl_eqneval
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_24="gfsxcpmodel.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_cooprfcmnsta.lst"
export XLFUNIT_27="$FIXmdl/mdl_cooprfcmnsta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_predtofcst"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_30="$FIXmdl/mdl_gfsxcprfcmxmn.04010930.$cycle"
export XLFUNIT_31="$FIXmdl/mdl_gfsxcprfcmxmn.10010331.$cycle"
export XLFUNIT_32="$FIXmdl/mdl_gfsxcpsnow.09010831.$cycle"
export XLFUNIT_33="$FIXmdl/mdl_gfsxmnmxmntd.04010930.$cycle"
export XLFUNIT_34="$FIXmdl/mdl_gfsxmnmxmntd.10010331.$cycle"
export XLFUNIT_35="$FIXmdl/mdl_gfsxmnwind.04010930.$cycle"
export XLFUNIT_36="$FIXmdl/mdl_gfsxmnwind.10010331.$cycle"
export XLFUNIT_49="mdl_gfscpmos.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_gfsxcpeval.cn.$cycle >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  EQNEVAL ended

#######################################################################
#
#    PROGRAM FCSTPOST - POST-PROCESSES MOS FORECASTS
#
#######################################################################

echo MDLLOG: `date` - begin job FCSTPOST - POST PROCESS MOS FORECASTS
export pgm=mdl_fcstpost
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_cooprfcmnsta.lst"
export XLFUNIT_27="$FIXmdl/mdl_cooprfcmnsta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_gfsxcppost.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_45="$FIXmdl/mdl_constcooprfcmn"
export XLFUNIT_47="$FIXmdl/mdl_coopthreshold"
export XLFUNIT_49="mdl_gfscpmos.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_gfspost.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  FCSTPOST ended

#######################################################################
# COPY FILES TO COM
#######################################################################

if test $SENDCOM = 'YES'
then
  cp mdl_gfscpmos.$cycle $COMOUT
fi

echo MDLLOG: `date` - Job gfs_extcoopmos has ended.
#######################################################################
