########################################################################
#  Job Name: exglmp_prep.sh.sms
#  Purpose: To pre-process the necessary data for running gridded 
#           analysis for LAMP temperature and dew point
#  Remarks: This script is kicked off upon the successful completion of
#           JLMP_PRDGEN at the current cycle.
#
#   HISTORY: Jul 26, 2010      - new job for Gridded LAMP
#            May 29, 2012      - modified all SREF input files and
#                                grib2 index files to now include
#                                "_3hrly" in their names. 
#
########################################################################
echo GLMPLOG: `date` - begin job exglmp_prep.sh.sms on `hostname`

set -x

#######################################################################
#   CHECK IF GLMP SREF FILE ALREADY EXISTS. IF IT DOES, WORK IS DONE 
#   SO EXIT.  IF IT DOES NOT, KEEP LOOKING.
#######################################################################
if [[ -s $COMIN/${srefvfil} && -s $COMIN/${srefgfil} ]]; then
   echo GLMPLOG: `date` - CURRENT CYCLE GLMP SREF DATA FOUND
   echo GLMPLOG: `date` - exglmp_prep.sh.sms ended
   exit 0
#######################################################################
#   CHECK IF RAW SREF FILE EXISTS. IF IT DOES, PROCESS THAT DATA.
#   IF IT DOES NOT, KEEP LOOKING.
#######################################################################
elif [[ -s $COMsref/ensprod/sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2 ]]; then
   echo GLMPLOG: `date` - CURRENT CYCLE SREF DATA FOUND AND WILL BE PROCESSED
#######################################################################
#   CHECK IF GLMP SREF FILE FOR PREVIOUS CYCLE ALREADY EXISTS. IF IT 
#   DOES, WORK IS DONE SO EXIT.  IF IT DOES NOT, KEEP LOOKING.
#######################################################################
elif [[ -s ${COMIN}/${srefvfil_prev} && -s ${COMIN}/${srefgfil_prev} ]]; then
   echo GLMPLOG: `date` - PREVIOUS CYCLE GLMP SREF DATA FOUND
   echo GLMPLOG: `date` - exglmp_prep.sh.sms ended
   exit 0
#######################################################################
#   CHECK IF RAW SREF FILE EXISTS FOR PREVIOUS SREF CYCLE. IF IT DOES, 
#   PROCESS THAT DATA. IF IT DOES NOT, EXIT WITH RETURN CODE 1.
#######################################################################
elif [[ -s $COMsref_prev/ensprod/sref.t${srefcyc_prev}z.pgrb212.mean_3hrly.grib2 ]]; then
   echo GLMPLOG: `date` - PREVIOUS CYCLE SREF DATA FOUND AND WILL BE PROCESSED
   srefcyc=${srefcyc_prev}
   srefvfil=${srefvfil_prev}
   srefgfil=${srefgfil_prev}
   COMsref=$COMsref_prev
   datefile=ncepdate.sref_prev
#######################################################################
#   SREF DATA FOR CURRENT AND PREVIOUS CYCLES UNAVAILBABLE.
#   EXIT WITH RETURN CODE 1.
#######################################################################
else
   echo GLMPLOG: `date` - NO SREF DATA FOUND FOR CURRENT OR PREVIOUS CYCLE
   echo GLMPLOG: `date` - EXITING 
   exit 1
fi 

echo GLMPLOG: `date` - copying SREF grib2 file
cp $COMsref/ensprod/sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2 .

#######################################################################
#   PROGRAM GRB2TOMDLP - CONVERTS GRIB DATA INTO MDLPACK
#######################################################################
echo GLMPLOG: `date` - creating GRIB2 index file
$EXECutil/grb2index sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2 sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2.index

echo GLMPLOG: `date` - begin running GRB2TOMDLP

export pgm=glmp_grb2tomdlp
. prep_step
export XLFUNIT_10="ncepdate.sref"
export XLFUNIT_20="sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2"
export XLFUNIT_21="sref.t${srefcyc}z.pgrb212.mean_3hrly.grib2.index"
export XLFUNIT_27="$srefgfil"
export XLFUNIT_28="$PARMlmp/glmp_srefgrib.lst"
export XLFUNIT_29="$FIXlmp/glmp_gridlst"
export XLFUNIT_30="$FIXlmp/glmp_mos2000id.tbl"
startmsg
$EXEClmp/glmp_grb2tomdlp < $PARMlmp/glmp_sref_grb2tomdlp.cn >> $pgmout 2>errfile
export err=$?; err_chk

echo GLMPLOG: `date` -  GRB2TOMDLP ended

######################################################################
#   RUN MOSPRED TO GET THE SREF DATA AT STATIONS
######################################################################
echo GLMPLOG: `date` - start running glmp_mospred

export pgm=glmp_mospred
. prep_step
export XLFUNIT_10="ncepdate.sref"
export XLFUNIT_20="$srefgfil"
export XLFUNIT_60="$srefvfil"
export XLFUNIT_33="$PARMlmp/glmp_sref_co.aug.rand.lst"
export XLFUNIT_34="$FIXlmp/glmp_sref_co.aug.rand.tbl"
export XLFUNIT_39="$FIXlmp/glmp_mos2000id.tbl"
export XLFUNIT_35="$PARMlmp/glmp_srefpredids.tbl"
startmsg
$EXEClmp/glmp_mospred < $PARMlmp/glmp_srefprds.cn >> $pgmout 2>errfile
export err=$?; err_chk

echo GLMPLOG: `date` - glmp_mospred ended

#######################################################################
# COPY FILES TO COM
#######################################################################
if test $SENDCOM = 'YES'
then
  cp ${srefvfil} $COMOUT/.
  cp ${srefgfil} $COMOUT/.
  if [[ ${srefcyc} == 09 || ${srefcyc} == 15 ]]; then
     cp ${srefvfil} $COMOUTp1d/${srefvfil}.m1d
     cp ${srefgfil} $COMOUTp1d/${srefgfil}.m1d
  fi                      
fi

msg="$job has completed normally on `hostname` at `date`"
postmsg "$jlogfile" "$msg"

echo GLMPLOG: `date` - exglmp_prep.sh.sms ended
exit 0