#!/bin/sh
#######################################################################
#  Job Name: exgfs_goemos.sh.sms
#  Purpose: To run all steps necessary to create short 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 03, 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.
#           Feb   , 2007      - added qpf, snow, clouds goes
#######################################################################
#
echo MDLLOG: `date` - Begin job exgfs_goemos.sh.sms
set -x

cd $DATA

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

export DAT="$PDY$cyc"

#######################################################################
# COPY MODEL FILES TO TEMP SPACE -- this file is created in job
#    gfs_mos_prep.  Contains GFS data from 0 - 96 hours.
#######################################################################
cp $COMIN/mdl_gfspkd.$cycle pkgfsraw.$DAT

#
#######################################################################
#
# PROGRAM RACREATE - MOS-2000 PROGRAM WHICH
#                   CREATES RANDOM ACCESS FILES; IN THIS CASE, THE
#                   CODE IS USED TO CREATE THE OPERATIONAL MOS
#                   FORECAST FILE.
#######################################################################
#
echo MDLLOG: `date` - begin job RACREATE - CREATE MOS FORECAST FILE
export pgm=mdl_racreate
. prep_step
export XLFUNIT_50="mdl_goemos.$cycle"
startmsg
$EXECmdl/mdl_racreate < $PARMmdl/mdl_gmosu350.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RACREATE ended

#
#######################################################################
#
#  PROGRAM RAINIT - INITIALIZES RANDOM ACCESS MOS FORECAST
#                   FILE WITH STATION CALL LETTERS,
#                   ELEVATION, LATITUDE, AND LONGITUDE
#
#######################################################################
export pgm=mdl_rainit
. prep_step
echo MDLLOG: `date` - begin job RAINIT - INITIALIZE MOS FORECAST FILE
export XLFUNIT_10="ncepdate"
export XLFUNIT_27="$FIXmdl/mdl_ndfdtrim.tbl"
export XLFUNIT_49="mdl_goemos.$cycle"
startmsg
$EXECmdl/mdl_rainit < $PARMmdl/mdl_gmosu351.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RAINIT ended

#
#######################################################################
#
#  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_24="pkgfsraw.$DAT"
export XLFUNIT_27="$FIXmdl/mdl_ndfdtrim.tbl"
export XLFUNIT_28="$FIXmdl/mdl_gfsgoeprd.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_griddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_constndfdtrimsta"
export XLFUNIT_60="goemosmodel.$DAT"
startmsg
$EXECmdl/mdl_mospred < $PARMmdl/mdl_gfsgmospredmdl.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="goemosmodel.$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_gfsgoemxmntd.04010930.$cycle"
export XLFUNIT_33="$FIXmdl/mdl_gfsgoemxmntd.10010331.$cycle"
export XLFUNIT_34="$FIXmdl/mdl_gfsgoesnow.09010831.$cycle"
export XLFUNIT_35="$FIXmdl/mdl_gfsgoepopqpf.04010930.$cycle"
export XLFUNIT_36="$FIXmdl/mdl_gfsgoepopqpf.10010331.$cycle"
export XLFUNIT_37="$FIXmdl/mdl_gfsgoecld.04010930.$cycle"
export XLFUNIT_38="$FIXmdl/mdl_gfsgoecld.10010331.$cycle"
export XLFUNIT_49="mdl_goemos.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_gfsgmoseval.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_gfsgoepost.$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 goemosmodel.$DAT $COMOUT/mdl_goemosmodel.$cycle
fi


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