#!/bin/sh
#######################################################################
#  Job Name: exnmmmos.sh.sms
#  Purpose: To run all steps necessary to create new NAM MOS FCSTS
#  Remarks: 
#  HISTORY: Sep 05, 2007  JCM - created script for NAM MOS.
#                               Based on Eta MOS script.
#           Sep 19, 2008  JCM - Eta->NAM transition; added new
#          -Dec 09, 2008        NAM-only equations, 40 & 80km TSTM/SVR
#                               processing.  For elements not yet
#                               re-developed, Eta equations renamed
#                               NMM and new stations inserted.
#
#######################################################################
#
echo MDLLOG: `date` - Begin job exnmmmos.sh.sms
set -x

cd $DATA

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

export DAT="$PDY$cyc"

#######################################################################
# RUN THE 32KM ARCHIVE AT ALL 4 CYCLES - 00/06/12/18
# LOOP THROUGH PROJECTIONS 00-84; COPY FILES AND INDICES TO $DATA
#######################################################################
for tau in 00 03 06 09 12 15 18 21 24 27 30 33 36\
           39 42 45 48 51 54 57 60 63 66 69 72 75\
           78 81 84
do
  cp $COMIN/nam.$cycle.awip32${tau}.tm00 nam.$cycle.awip32${tau}.tm00
  cp $COMIN/nam.$cycle.awip32i${tau} nam.$cycle.awip32i${tau}
done

#######################################################################
# GRB2MDLP
# CONVERT GRIB TO TDL_PACK  -- NAM 32 KM ARCHIVE
#######################################################################

export pgm=mdl_grb2mdlp
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_30="$FIXmdl/mdl_gridlst"
export XLFUNIT_11="nam.$cycle.awip3200.tm00"
export XLFUNIT_12="nam.$cycle.awip32i00"
export XLFUNIT_13="nam.$cycle.awip3203.tm00"
export XLFUNIT_14="nam.$cycle.awip32i03"
export XLFUNIT_15="nam.$cycle.awip3206.tm00"
export XLFUNIT_16="nam.$cycle.awip32i06"
export XLFUNIT_17="nam.$cycle.awip3209.tm00"
export XLFUNIT_18="nam.$cycle.awip32i09"
export XLFUNIT_19="nam.$cycle.awip3212.tm00"
export XLFUNIT_20="nam.$cycle.awip32i12"
export XLFUNIT_21="nam.$cycle.awip3215.tm00"
export XLFUNIT_22="nam.$cycle.awip32i15"
export XLFUNIT_23="nam.$cycle.awip3218.tm00"
export XLFUNIT_24="nam.$cycle.awip32i18"
export XLFUNIT_25="nam.$cycle.awip3221.tm00"
export XLFUNIT_26="nam.$cycle.awip32i21"
export XLFUNIT_27="nam.$cycle.awip3224.tm00"
export XLFUNIT_28="nam.$cycle.awip32i24"
export XLFUNIT_29="nam.$cycle.awip3227.tm00"
export XLFUNIT_31="nam.$cycle.awip32i27"
export XLFUNIT_32="nam.$cycle.awip3230.tm00"
export XLFUNIT_33="nam.$cycle.awip32i30"
export XLFUNIT_34="nam.$cycle.awip3233.tm00"
export XLFUNIT_35="nam.$cycle.awip32i33"
export XLFUNIT_36="nam.$cycle.awip3236.tm00"
export XLFUNIT_37="nam.$cycle.awip32i36"
export XLFUNIT_38="nam.$cycle.awip3239.tm00"
export XLFUNIT_39="nam.$cycle.awip32i39"
export XLFUNIT_40="nam.$cycle.awip3242.tm00"
export XLFUNIT_41="nam.$cycle.awip32i42"
export XLFUNIT_42="nam.$cycle.awip3245.tm00"
export XLFUNIT_43="nam.$cycle.awip32i45"
export XLFUNIT_44="nam.$cycle.awip3248.tm00"
export XLFUNIT_45="nam.$cycle.awip32i48"
export XLFUNIT_46="nam.$cycle.awip3251.tm00"
export XLFUNIT_47="nam.$cycle.awip32i51"
export XLFUNIT_48="nam.$cycle.awip3254.tm00"
export XLFUNIT_49="nam.$cycle.awip32i54"
export XLFUNIT_80="nam.$cycle.awip3257.tm00"
export XLFUNIT_81="nam.$cycle.awip32i57"
export XLFUNIT_82="nam.$cycle.awip3260.tm00"
export XLFUNIT_83="nam.$cycle.awip32i60"
export XLFUNIT_84="nam.$cycle.awip3263.tm00"
export XLFUNIT_85="nam.$cycle.awip32i63"
export XLFUNIT_86="nam.$cycle.awip3266.tm00"
export XLFUNIT_87="nam.$cycle.awip32i66"
export XLFUNIT_88="nam.$cycle.awip3269.tm00"
export XLFUNIT_89="nam.$cycle.awip32i69"
export XLFUNIT_90="nam.$cycle.awip3272.tm00"
export XLFUNIT_91="nam.$cycle.awip32i72"
export XLFUNIT_92="nam.$cycle.awip3275.tm00"
export XLFUNIT_93="nam.$cycle.awip32i75"
export XLFUNIT_66="nam.$cycle.awip3278.tm00"
export XLFUNIT_67="nam.$cycle.awip32i78"
export XLFUNIT_68="nam.$cycle.awip3281.tm00"
export XLFUNIT_69="nam.$cycle.awip32i81"
export XLFUNIT_70="nam.$cycle.awip3284.tm00"
export XLFUNIT_71="nam.$cycle.awip32i84"
export XLFUNIT_51="pknmmraw.$DAT"
export XLFUNIT_52="grb2mdlp.lst"
echo MDLLOG: `date` - Program grb2mdlp has begun.
$EXECmdl/mdl_grb2mdlp < $PARMmdl/mdl_nmmgrbcnv.cn.$cycle >> $pgmout 2>errfile
export err=$?;err_chk

#######################################################################
# COPY NAM ARCHIVE FILE TO COM
#######################################################################

if test $SENDCOM = 'YES'
then
  cp pknmmraw.$DAT $COMOUT/mdl_nmmpkd.$cycle
fi


#######################################################################
#  FROM THIS POINT ON IN THE SCRIPT, ONLY RUN AT 0000/1200 Z CYCLES
#######################################################################

if [ $cyc -eq '00' -o $cyc -eq '12' ]
then

#######################################################################
#    RUN OBSPREP 
#    EVEN IF OBS ARE MISSING, WE NEED TO PRODUCE PKOBS FILE
#######################################################################

if test $cyc -eq '00'
then
 obhr1=01
 cp $DCOM/sfctbl.$obhr1 sfctbl.$obhr1
elif test $cyc -eq '12'
then
 obhr1=13
 cp $DCOM/sfctbl.$obhr1 sfctbl.$obhr1
fi

if [ ! -f sfctbl.$obhr1 ]
  then touch sfctbl.$obhr1
fi

export pgm=mdl_obsprep
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_20="sfctbl.$obhr1"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_70="pkobs.$DAT"
startmsg
$EXECmdl/mdl_obsprep < $PARMmdl/mdl_nmmobsprep.cn >> $pgmout 2>errfile
export err=$?

#!!!NOTE: AN ERROR HERE IS OK; OBS ARE NOT ESSENTIAL TO MOS FORECASTS!!!

#
#######################################################################
#
# 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_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_racreate < $PARMmdl/mdl_u350.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RACREATE ended 

cp mdl_nmmmos.$cycle mdl_nmmtsvr40.$cycle
cp mdl_nmmmos.$cycle mdl_nmmtsvr80.$cycle

#
#######################################################################
#
#  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_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_49="mdl_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_rainit < $PARMmdl/mdl_u351.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RAINIT ended 

#
#######################################################################
#
#    FIRST EXECUTION OF PROGRAM MOSPRED 
#    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="pknmmraw.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmprd.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_nmmgriddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_nmmconststa"
export XLFUNIT_60="nmmmodel.$DAT"
startmsg
#XXW $EXECmdl/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
/com/pmb/wx11xw/mdl_mospred.fd/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  First use of MOSPRED ended 

#
#######################################################################
#
#    SECOND EXECUTION OF PROGRAM MOSPRED
#    MOSPRED - USED TO CREATE OBSERVED PREDICTORS FROM THE MDL  
#              OBSERVATIONAL TABLES.
#
#######################################################################
#
echo MDLLOG: `date` - begin job MOSPRED - CREATE OBSERVATIONAL PREDICTORS
export pgm=mdl_mospred
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_80="pkobs.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmprd.obs"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_61="mdl_nmmobs.$cycle"
startmsg
#$EXECmdl/mdl_mospred < $PARMmdl/mdl_nmmpredobs.cn >> $pgmout 2>errfile
/com/pmb/wx11xw/mdl_mospred.fd/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  Second 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_23="mdl_nmmobs.$cycle"
export XLFUNIT_24="nmmmodel.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_28="$FIXmdl/mdl_predtofcst"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_30="$FIXmdl/mdl_nmmwind.04010930.$cycle"
export XLFUNIT_31="$FIXmdl/mdl_nmmwind.10010331.$cycle"
export XLFUNIT_32="$FIXmdl/mdl_nmmmxmntd.04010930.$cycle"
export XLFUNIT_33="$FIXmdl/mdl_nmmmxmntd.10010331.$cycle"
export XLFUNIT_34="$FIXmdl/mdl_nmmcigcld.04010930.$cycle"
export XLFUNIT_35="$FIXmdl/mdl_nmmcigcld.10010331.$cycle"
export XLFUNIT_36="$FIXmdl/mdl_nmmpopqpf.04010930.$cycle"
export XLFUNIT_37="$FIXmdl/mdl_nmmpopqpf.10010331.$cycle"
export XLFUNIT_38="$FIXmdl/mdl_nmmvisobv.04010930.$cycle"
export XLFUNIT_39="$FIXmdl/mdl_nmmvisobv.10010331.$cycle"
export XLFUNIT_41="$FIXmdl/mdl_nmmsnow.09010831.$cycle"
export XLFUNIT_42="$FIXmdl/mdl_nmmpopc.04010930.$cycle"
export XLFUNIT_43="$FIXmdl/mdl_nmmpopc.10010331.$cycle"
export XLFUNIT_49="mdl_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_nmmeval.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_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmpost.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_47="$FIXmdl/mdl_nmmthreshold"
export XLFUNIT_45="$FIXmdl/mdl_nmmconststa"
export XLFUNIT_49="mdl_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_nmmpost.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  FCSTPOST ended 

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

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

#######################################################################
#######################################################################
# NOW PROCESS TSTM/SVR EQNS
#######################################################################
#
#######################################################################
# FIRST RUN - 40KM TSTMS      
#######################################################################
#
#######################################################################
#
#  PROGRAM RAINIT - INITIALIZES TSVR RANDOM ACCESS FORECAST FILE
#
#######################################################################

export pgm=mdl_rainit
. prep_step
echo MDLLOG: `date` - begin job RAINIT - INITIALIZE MOS FORECAST FILE
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
export XLFUNIT_49="mdl_nmmtsvr40.$cycle"
startmsg
$EXECmdl/mdl_rainit < $PARMmdl/mdl_u351.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RAINIT for TSVR ended

#######################################################################
#
#    THIRD EXECUTION OF PROGRAM MOSPRED -- FOR TSVR
#    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="pknmmraw.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr40prd"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_nmmgriddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_nmmconstgrd40"
export XLFUNIT_60="tsvr40prd.$DAT"
startmsg
#$EXECmdl/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
/com/pmb/wx11xw/mdl_mospred.fd/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  First use of MOSPRED ended

#######################################################################
#
#    PROGRAM EQNEVAL - CALCULATES MOS FORECASTS - FOR TSVR
#
#######################################################################

echo MDLLOG: `date` - begin job EQNEVAL - MAKE MOS FORECASTS
export pgm=mdl_eqneval
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_24="tsvr40prd.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_predtofcst"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_30="$FIXmdl/mdl_nmmtsvr40.04010930.$cycle"
export XLFUNIT_31="$FIXmdl/mdl_nmmtsvr40.10010331.$cycle"
export XLFUNIT_49="mdl_nmmtsvr40.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_nmmevaltsvr.cn.$cycle >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  EQNEVAL ended

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

echo MDLLOG: `date` - begin job FCSTPOST - POST PROCESS TSVR FORECASTS
export pgm=mdl_fcstpost
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmposttsvr40.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_49="mdl_nmmtsvr40.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_nmmposttsvr.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  FCSTPOST ended

#######################################################################
#
#    PROGRAM FCSTPOST - USED TO COMBINE TSVR & MOS FORECASTS
#                       INSERT 40KM TSTM (6/12-H) AT MOS SITES
#######################################################################

echo MDLLOG: `date` - begin job FCSTPOST - COMBINE TSVR and MOS
export pgm=mdl_fcstpost
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_mos2grd_nmm40.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr40comb.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_48="mdl_nmmtsvr40.$cycle"
export XLFUNIT_49="mdl_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_nmmpostcomb.cn >> $pgmout 2>errfile
export err=$?; 
echo MDLLOG: `date` -  FCSTPOST ended 

#######################################################################
# SECOND TSVR RUN - 80KM TSTMS/CSVR 
#######################################################################
#
#######################################################################
#
#  PROGRAM RAINIT - INITIALIZES TSVR RANDOM ACCESS FORECAST FILE
#
#######################################################################

export pgm=mdl_rainit
. prep_step
echo MDLLOG: `date` - begin job RAINIT - INITIALIZE MOS FORECAST FILE
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
export XLFUNIT_49="mdl_nmmtsvr80.$cycle"
startmsg
$EXECmdl/mdl_rainit < $PARMmdl/mdl_u351.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  RAINIT for TSVR ended

#######################################################################
#
#    THIRD EXECUTION OF PROGRAM MOSPRED -- FOR TSVR
#    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="pknmmraw.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr80prd"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_44="$FIXmdl/mdl_nmmgriddedconstants"
export XLFUNIT_45="$FIXmdl/mdl_nmmconstgrd80"
export XLFUNIT_60="tsvr80prd.$DAT"
startmsg
#$EXECmdl/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
/com/pmb/wx11xw/mdl_mospred.fd/mdl_mospred < $PARMmdl/mdl_nmmpredmdl.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  First use of MOSPRED ended

#######################################################################
#
#    PROGRAM EQNEVAL - CALCULATES MOS FORECASTS - FOR TSVR
#
#######################################################################

echo MDLLOG: `date` - begin job EQNEVAL - MAKE MOS FORECASTS
export pgm=mdl_eqneval
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_24="tsvr80prd.$DAT"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_predtofcst"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_30="$FIXmdl/mdl_nmmtsvr80.04010930.$cycle"
export XLFUNIT_31="$FIXmdl/mdl_nmmtsvr80.10010331.$cycle"
export XLFUNIT_49="mdl_nmmtsvr80.$cycle"
startmsg
$EXECmdl/mdl_eqneval < $PARMmdl/mdl_nmmevaltsvr.cn.$cycle >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  EQNEVAL ended

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

echo MDLLOG: `date` - begin job FCSTPOST - POST PROCESS TSVR FORECASTS
export pgm=mdl_fcstpost
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmposttsvr80.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_49="mdl_nmmtsvr80.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_nmmposttsvr.cn >> $pgmout 2>errfile
export err=$?; err_chk
echo MDLLOG: `date` -  FCSTPOST ended

#######################################################################
#
#    PROGRAM FCSTPOST - USED TO COMBINE TSVR & MOS FORECASTS
#                       INSERT 80KM C/USVR (6/12H) AT MOS SITES
#######################################################################

echo MDLLOG: `date` - begin job FCSTPOST - COMBINE TSVR and MOS
export pgm=mdl_fcstpost
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_mos2grd_nmm80.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr80comb.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_48="mdl_nmmtsvr80.$cycle"
export XLFUNIT_49="mdl_nmmmos.$cycle"
startmsg
$EXECmdl/mdl_fcstpost < $PARMmdl/mdl_nmmpostcomb.cn >> $pgmout 2>errfile
export err=$?; 
echo MDLLOG: `date` -  FCSTPOST ended 

#######################################################################
### start making products now
#######################################################################

#######################################################################
# NAMMETTX
# NEW NAM MOS MESSAGE CODE
#######################################################################

export pgm=mdl_nammettx
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_48="mdl_nmmmos.$cycle"
export XLFUNIT_60="mdl_nmmmet.$cycle"
export XLFUNIT_65="mdl_nmmmet.tran"
startmsg
$EXECmdl/mdl_nammettx < $PARMmdl/mdl_nmmmettx.dat >> $pgmout 2>errfile
export err=$?; err_chk

#######################################################################
# CREATE MARINE MOS GUIDANCE (MME) MESSAGES
# WITH HEADERS FQPA20, FQUS21-26, FQAK37 KWNO
#######################################################################

export pgm=mdl_nammmetx
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_48="mdl_nmmmos.$cycle"
export XLFUNIT_60="mdl_nmmmme.$cycle"
export XLFUNIT_65="mdl_nmmmme.tran"
startmsg
$EXECmdl/mdl_nammmetx < $PARMmdl/mdl_nmmmmetx.dat >> $pgmout 2>errfile
export err=$?; err_chk

#######################################################################
# COPY FILES TO COM & SEND OUT MESSAGE
#######################################################################

if test $SENDCOM = 'YES'
then
  cp mdl_nmmmet.$cycle $COMOUT
  cp mdl_nmmmet.tran $pcom/nmmmet.tran.$job
  cp mdl_nmmmos.$cycle $COMOUT
  cp mdl_nmmtsvr40.$cycle $COMOUT
  cp mdl_nmmtsvr80.$cycle $COMOUT
  cp mdl_nmmmme.$cycle $COMOUT
  cp mdl_nmmmme.tran $pcom/nmmmme.tran.$job
fi

if test $SENDDBN = 'YES'
then
   $DBNROOT/bin/dbn_alert TEXT nmm $job $pcom/nmmmet.tran.$job
   $DBNROOT/bin/dbn_alert MDLFCST NAMMOSTXT $job $COMOUT/mdl_nmmmet.$cycle
   $DBNROOT/bin/dbn_alert TEXT nmm $job $pcom/nmmmme.tran.$job
   $DBNROOT/bin/dbn_alert MDLFCST MMEMOSTXT $job $COMOUT/mdl_nmmmme.$cycle
fi

#########################################################
#   Generate NAM MOS BUFR message
#########################################################
export pgm="mdl_bufrmos2"
. prep_step

export XLFUNIT_10="ncepdate"
export XLFUNIT_25="$FIXmdl/mdl_metbufr.dat"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_40="mdl_nmmmos.$cycle"
export XLFUNIT_60="mdl_metbufr.xtrn"

$EXECmdl/mdl_bufrmos2 < $PARMmdl/mdl_metbufr.cn.$cycle >> $pgmout 2>errfile
export err=$?

if test $SENDCOM = 'YES'
then
   cp mdl_metbufr.xtrn $pcom/metbufr.xtrn.$job
   cp mdl_metbufr.xtrn $COMOUT/mdl_metbufr.xtrn.$cycle
fi

if test $SENDDBN = 'YES'
then
   $DBNROOT/bin/dbn_alert GRIB_LOW nmm $job $pcom/metbufr.xtrn.$job
fi

#########################################################
#   Generate NAM MOS GRIB message - CONUS
#########################################################
export pgm="mdl_ra2grib"
. prep_step

  export XLFUNIT_10="ncepdate"
  export XLFUNIT_25="$FIXmdl/mdl_nmmgribin.$cycle"
  export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
  export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
  export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
  export XLFUNIT_35="$FIXmdl/mdl_gridlst"
  export XLFUNIT_36="$FIXmdl/mdl_landsea.cns"
  export XLFUNIT_45="$FIXmdl/mdl_nmmconststa"
  export XLFUNIT_48="mdl_nmmmos.$cycle"
  export XLFUNIT_66="mdl_metgribcns.$cycle"

startmsg
$EXECmdl/mdl_ra2grib < $PARMmdl/mdl_nmmgribcns.cn.$cycle >> $pgmout 2>errfile
export err=$?;err_chk


#########################################################
#   Generate NAM MOS GRIB message - AK
#########################################################
export pgm="mdl_ra2grib"
. prep_step

  export XLFUNIT_10="ncepdate"
  export XLFUNIT_25="$FIXmdl/mdl_nmmgribin.$cycle"
  export XLFUNIT_26="$FIXmdl/mdl_nmmaksta.lst"
  export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
  export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
  export XLFUNIT_35="$FIXmdl/mdl_gridlst"
  export XLFUNIT_36="$FIXmdl/mdl_landsea.ak"
  export XLFUNIT_45="$FIXmdl/mdl_nmmconststa"
  export XLFUNIT_48="mdl_nmmmos.$cycle"
  export XLFUNIT_66="mdl_metgribak.$cycle"

startmsg
$EXECmdl/mdl_ra2grib < $PARMmdl/mdl_nmmgribak.cn.$cycle >> $pgmout 2>errfile
export err=$?;err_chk


#########################################################
#   Generate NAM MOS GRIB message - TSTM from 40km
#########################################################
export pgm="mdl_ra2grib"
. prep_step

  export XLFUNIT_10="ncepdate"
  export XLFUNIT_25="$FIXmdl/mdl_nmmgribintsvr40.$cycle"
  export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
  export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
  export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
  export XLFUNIT_35="$FIXmdl/mdl_gridlst"
  export XLFUNIT_36="$FIXmdl/mdl_landsea.cns"
  export XLFUNIT_45="$FIXmdl/mdl_constgrd"
  export XLFUNIT_48="mdl_nmmtsvr40.$cycle"
  export XLFUNIT_66="tstm40grib.$cycle"

startmsg
$EXECmdl/mdl_ra2grib < $PARMmdl/mdl_nmmgribcns.cn.$cycle >> $pgmout 2>errfile
export err=$?;err_chk

#########################################################
#   Generate NAM MOS GRIB message - Severe from 80km
#########################################################
export pgm="mdl_ra2grib"
. prep_step

  export XLFUNIT_10="ncepdate"
  export XLFUNIT_25="$FIXmdl/mdl_nmmgribintsvr80.$cycle"
  export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
  export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
  export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
  export XLFUNIT_35="$FIXmdl/mdl_gridlst"
  export XLFUNIT_36="$FIXmdl/mdl_landsea.cns"
  export XLFUNIT_45="$FIXmdl/mdl_constgrd"
  export XLFUNIT_48="mdl_nmmtsvr80.$cycle"
  export XLFUNIT_66="svr80grib.$cycle"

startmsg
$EXECmdl/mdl_ra2grib < $PARMmdl/mdl_nmmgribcns.cn.$cycle >> $pgmout 2>errfile
export err=$?;err_chk

################################################################################
#  Cat the two thunderstorm GRIB files into one final file
################################################################################
  cat tstm40grib.$cycle svr80grib.$cycle > mdl_metgribtsvr.$cycle

################################################################################
#  Send the GRIB messages to /com, and dbnet alert them for the ftp server
################################################################################

if test $SENDCOM = 'YES'
then
   cp mdl_metgribcns.$cycle $COMOUT
   cp mdl_metgribak.$cycle $COMOUT
   cp mdl_metgribtsvr.$cycle $COMOUT
fi

if test $SENDDBN = 'YES'
then
   $DBNROOT/bin/dbn_alert MDLFCST NAMMOSGRIB $job $COMOUT/mdl_metgribcns.$cycle
   $DBNROOT/bin/dbn_alert MDLFCST NAMMOSGRIB $job $COMOUT/mdl_metgribtsvr.$cycle
fi

#######################################################################
# RA2MDLP
# CONVERT NAMMOS RANDOM ACCESS TO MDL_PACK
#######################################################################

export pgm="mdl_ra2mdlp"
. prep_step

export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmstation.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmstation.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmarch.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_38="mdl_nmmmos.$cycle"          
export XLFUNIT_66="mdl_nmmmossq.$cycle"

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

#######################################################################
# RA2MDLP - ARCHIVE 40KM TSTM GUIDANCE
# CONVERT NAMMOS RANDOM ACCESS TO MDL_PACK
#######################################################################

export pgm="mdl_ra2mdlp"
. prep_step

export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr40sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr40sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr40arch.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_38="mdl_nmmtsvr40.$cycle"          
export XLFUNIT_66="mdl_nmmtsvr40mossq.$cycle"

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

#######################################################################
# RA2MDLP - ARCHIVE 80KM TSVR GUIDANCE
# CONVERT NAMMOS RANDOM ACCESS TO MDL_PACK
#######################################################################

export pgm="mdl_ra2mdlp"
. prep_step

export XLFUNIT_10="ncepdate"
export XLFUNIT_26="$FIXmdl/mdl_nmmtsvr80sta.lst"
export XLFUNIT_27="$FIXmdl/mdl_nmmtsvr80sta.tbl"
export XLFUNIT_28="$FIXmdl/mdl_nmmtsvr80arch.$cycle"
export XLFUNIT_29="$FIXmdl/mdl_mos2000id.tbl"
export XLFUNIT_38="mdl_nmmtsvr80.$cycle"          
export XLFUNIT_66="mdl_nmmtsvr80mossq.$cycle"

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

if test $SENDCOM = 'YES'
then
   cp mdl_nmmmossq.$cycle $COMOUT
   cp mdl_nmmtsvr40mossq.$cycle $COMOUT
   cp mdl_nmmtsvr80mossq.$cycle $COMOUT
fi

#########################################################
#  next fi is for 00/12Z only if test
#########################################################
fi

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