#!/bin/sh
#######################################################################
#  Job Name: exgfsmos_goe_extfcst.sh.sms
#  Purpose: To run all steps necessary to create extended-range GFS-based
#           MOS fcsts for the generalized operator.  These forecasts
#           will be used as the inititialization for the gridded MOS
#           analysis.  This script runs all the steps to create the
#           forecasts.  Subsequent scripts will produce the products.
#           This script runs at 00 and 12Z.   
#  Remarks: 
#  HISTORY: Mar 17, 2005      - new job for GFS Gridded MOS
#           Jun 19, 2006      - took out wind goe, added cp of 201
#                               output to com for later u140
#           Jun 29, 2006      - expanded goes to full CONUS.  Removed
#                               snow equations for now.
#           Aug 03, 2006      - added check that short-range file
#                               exists
#           Feb   , 2007      - added qpf, snow, clouds goes
#######################################################################
#
echo MDLLOG: `date` - Begin job exgfsmos_goe_extfcst.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 FILE FIRST CREATED IN THE
#    EXECUTION OF GFSMOS_GOE_FCST.  CHECK IF THE FILE MDL_GOEMOS.TXXZ
#    EXISTS IN COM/GFS.  IF IT DOES, COPY THE FILE TO THE WORK SPACE.
#    IF IT DOES NOT EXIST, THE SCRIPT WILL ABORT.  GFSMOS_GOE_EXTFCST
#    WILL NOT WORK UNLESS GFSMOS_GOE_FCST HAS ALREADY RUN SUCCESSFULLY.
#
#######################################################################
#
if [ ! -f $COMIN/mdl_goemos.$cycle ]
     then echo 'need successful run of exgfs_mos to run properly' >> $pgmout        
             export err=1;err_chk
fi

cp $COMIN/mdl_goemos.$cycle .


#######################################################################
# COPY MODEL FILES TO TEMP SPACE 
#######################################################################
cp $COMIN/mdl_gfspkd.$cycle pkgfsraw.$DAT
cp $COMIN/mdl_gfsxpkd.$cycle pkgfsxraw.$DAT

#
#######################################################################
#
#  PROGRAM 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="pkgfsraw.$DAT"
export XLFUNIT_24="pkgfsxraw.$DAT"
export XLFUNIT_27="$FIXmdl/mdl_ndfdtrim.tbl"
export XLFUNIT_28="$FIXmdl/mdl_gfsxgoeprd.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_griddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_constndfdtrimsta"
export XLFUNIT_60="goemosxmodel.$DAT"
startmsg
$EXECmdl/mdl_mospred < $PARMmdl/mdl_gfsxgmospredmdl.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="goemosxmodel.$DAT"
export XLFUNIT_27="$FIXmdl/mdl_ndfdtrim.tbl"
export XLFUNIT_28="$FIXmdl/mdl_predtofcst"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_32="$FIXmdl/mdl_gfsxgoemxmntd.04010930.$cycle"
export XLFUNIT_33="$FIXmdl/mdl_gfsxgoemxmntd.10010331.$cycle"
export XLFUNIT_34="$FIXmdl/mdl_gfsxgoesnow.09010831.$cycle"
export XLFUNIT_35="$FIXmdl/mdl_gfsxgoepopqpf.04010930.$cycle"
export XLFUNIT_36="$FIXmdl/mdl_gfsxgoepopqpf.10010331.$cycle"
export XLFUNIT_37="$FIXmdl/mdl_gfsxgoecld.04010930.$cycle"
export XLFUNIT_38="$FIXmdl/mdl_gfsxgoecld.10010331.$cycle"
export XLFUNIT_49="mdl_goemos.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_gfsxgmoseval.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_27="$FIXmdl/mdl_ndfdtrim.tbl"
export XLFUNIT_28="$FIXmdl/mdl_gfsxgoepost.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_45="$FIXmdl/mdl_constndfdtrimsta"
export XLFUNIT_47="$FIXmdl/mdl_goethreshold"
export XLFUNIT_49="mdl_goemos.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_gmospost.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  FCSTPOST ended 

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

if test $SENDCOM = 'YES'
then
  cp mdl_goemos.$cycle $COMOUT
  cp goemosxmodel.$DAT $COMOUT/mdl_goemosxmodel.$cycle
fi


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