#!/usr/bin/ksh
#####################################################################
echo "------------------------------------------------"
echo "        exgfdl_pre_master.sh.sms "
echo "     Hurricane Model Control Script "
echo "------------------------------------------------"
echo "History: JUN 1997 - First implementation of this new script."
echo "         AUG 1997 - Corrected the passing of the STORM NUMBER"
echo "             to script startgfdl and not the number of storms."
echo "         JAN 2000 - Brought to IBM SP"
#              MAR 2010 - Cokley - Added 5th storm
#####################################################################

PS4=' + exgfdl_pre_master.sh.sms line $LINENO: '

cd $DATA

#####################################################################
#
# START FLOW OF CONTROL
#
# 1) Get the Date from the IBM.
#
# 2) Execute Control and GFDL Hurricane Model.
#####################################################################

set -x

export kyodate=`echo $PDY$cyc | cut -c3-10`

################################################################
#    Decide how many storms to run.  Write to storm files
#    with the status of running the storm.
################################################################
export prodcyc=$cyc

stormdate=`cat $mesagdir/stormdate`

if test "$kyodate" = "$stormdate"
then

   export nestno=`cat $mesagdir/nestnum`
   export nstms=`cat $mesagdir/nstorms`
   awk '{print $2 " " $3}' $mesagdir/storms.nhc > mlabel
   numlines=`wc -l mlabel | cut -c8-8`
   
   #################################################
   # Write to storm file to keep track of status
   #################################################
   if test -a $COMOUT/$stormlabel.$cycle
   then
      label="Rerun $stormlabel"
      echo "RERUN $stormlabel" > $COMOUT/$stormlabel.$cycle
   else
      echo "$stormlabel will run" > $COMOUT/$stormlabel.$cycle
   fi

   #################################################
   # Run the GFDL Model
   #################################################
   case $stormlabel in
     storm1)label=`sed 2,${numlines}d mlabel`
            if test $nstms -gt 0
            then
               msg="$stormlabel will run. SMS taking control."
               postmsg "$jlogfile" "$msg"
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
               fi
               sh $EXhur/gfdl_pre_master_start.sh
            else
               label="No $stormlabel"
               echo $label  >$COMOUT/$stormlabel.$cycle
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"              
                 SMSPASS=FREE
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/gempak/jhur1_gempak_meta_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/gempak/jhur1_gempak_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/post/jhur1_archive_${cyc} 
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/post/jhur1_tracker_${cyc} 
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/post/jhur1_post_${cyc} 
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/post/jhur1_post_swath_${cyc} 
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 #SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/post/jhur1_post_early_${cyc} 
                 #$SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/jhur1_forecast_${cyc} 
                 $SMSBIN/smsinit
                 $SMSBIN/endt
		 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/prep/jhur1_prep_lats_${cyc}
		 $SMSBIN/smsinit
		 $SMSBIN/endt
		 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/prep/jhur1_prep_wake_${cyc}
		 $SMSBIN/smsinit
		 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/prep/jhur1_prep_atmos_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur1/prep/jhur1_prep_ocean_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
               fi
            fi
            ;;
     storm2)sed 1d mlabel > tmplabel
            label=`sed 2,${numlines}d tmplabel`
            if test $nstms -gt 1
            then
               msg="$stormlabel will run. SMS taking control."
               postmsg "$jlogfile" "$msg"
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
               fi
               sh $EXhur/gfdl_pre_master_start.sh
            else
               label="No $stormlabel"
               echo $label  >$COMOUT/$stormlabel.$cycle
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
                 SMSPASS=FREE
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/gempak/jhur2_gempak_meta_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/gempak/jhur2_gempak_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/post/jhur2_archive_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/post/jhur2_tracker_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/post/jhur2_post_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 #SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/post/jhur2_post_early_${cyc}
                 #$SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/post/jhur2_post_swath_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/jhur2_forecast_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/prep/jhur2_prep_lats_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/prep/jhur2_prep_wake_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/prep/jhur2_prep_atmos_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur2/prep/jhur2_prep_ocean_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
               fi
            fi
            ;;
     storm3)sed '1,2d' mlabel > tmplabel
            numlines=`wc -l tmplabel | cut -c8-8`
            label=`sed 2,${numlines}d tmplabel`
            if test $nstms -gt 2
            then 
               msg="$stormlabel will run. SMS taking control."
               postmsg "$jlogfile" "$msg"
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
               fi
               sh $EXhur/gfdl_pre_master_start.sh
            else
               label="No $stormlabel"
               echo $label  >$COMOUT/$stormlabel.$cycle
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
                 SMSPASS=FREE
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/gempak/jhur3_gempak_meta_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/gempak/jhur3_gempak_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/post/jhur3_archive_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/post/jhur3_tracker_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/post/jhur3_post_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 #SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/post/jhur3_post_early_${cyc}
                 #$SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/post/jhur3_post_swath_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/jhur3_forecast_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/prep/jhur3_prep_lats_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/prep/jhur3_prep_wake_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/prep/jhur3_prep_atmos_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur3/prep/jhur3_prep_ocean_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
               fi
            fi
            ;;     
     storm4)sed '1,3d' mlabel > tmplabel
            numlines=`wc -l tmplabel | cut -c8-8`
            label=`sed 2,${numlines}d tmplabel`
            if test $nstms -gt 3
            then
               msg="$stormlabel will run. SMS taking control."
               postmsg "$jlogfile" "$msg"
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
               fi
               sh $EXhur/gfdl_pre_master_start.sh
            else
               label="No $stormlabel"
               echo $label  >$COMOUT/$stormlabel.$cycle
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
                 SMSPASS=FREE
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/gempak/jhur4_gempak_meta_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/gempak/jhur4_gempak_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/post/jhur4_archive_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/post/jhur4_tracker_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/post/jhur4_post_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 #SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/post/jhur4_post_early_${cyc}
                 #$SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/post/jhur4_post_swath_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/jhur4_forecast_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/prep/jhur4_prep_lats_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/prep/jhur4_prep_wake_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/prep/jhur4_prep_atmos_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur4/prep/jhur4_prep_ocean_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
               fi
            fi
            ;;
     storm5)sed '1,4d' mlabel > tmplabel
            numlines=`wc -l tmplabel | cut -c8-8`
            label=`sed 2,${numlines}d tmplabel`
            if test $nstms -gt 4
            then
               msg="$stormlabel will run. SMS taking control."
               postmsg "$jlogfile" "$msg"
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
               fi
               sh $EXhur/gfdl_pre_master_start.sh
            else
               label="No $stormlabel"
               echo $label  >$COMOUT/$stormlabel.$cycle
               if test "$SENDSMS" = "YES"
               then
                 $SMSBIN/smslabel $stormlabel "$label"
                 SMSPASS=FREE
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/gempak/jhur5_gempak_meta_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/gempak/jhur5_gempak_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/post/jhur5_archive_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/post/jhur5_tracker_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/post/jhur5_post_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 #SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/post/jhur5_post_early_${cyc}
                 #$SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/post/jhur5_post_swath_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/jhur5_forecast_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/prep/jhur5_prep_lats_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/prep/jhur5_prep_wake_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/prep/jhur5_prep_atmos_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
                 SMSNAME=/prod${prodcyc}/hur${cyc}/hur5/prep/jhur5_prep_ocean_${cyc}
                 $SMSBIN/smsinit
                 $SMSBIN/endt
               fi
            fi
            ;;
     *) ;;
   esac

   echo $label > $DATA/label
else
   ##############################################
   # Condition if no storms are to be run
   ##############################################
   msg="No hurricane to run. SMS taking control."
   postmsg "$jlogfile" "$msg"
   label="No $stormlabel"
   if test "$SENDSMS" = "YES"
   then
     $SMSBIN/smslabel $stormlabel "$label"
   fi
   echo $label  >$COMOUT/$stormlabel.$cycle
   if test "$SENDSMS" = "YES"
   then
     SMSPASS=FREE
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/gempak/jhur${storm_num}_gempak_meta_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/gempak/jhur${storm_num}_gempak_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/post/jhur${storm_num}_archive_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/post/jhur${storm_num}_tracker_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/post/jhur${storm_num}_post_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     #SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/post/jhur${storm_num}_post_early_${cyc}
     #$SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/post/jhur${storm_num}_post_swath_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/jhur${storm_num}_forecast_${cyc} 
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/prep/jhur${storm_num}_prep_lats_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/prep/jhur${storm_num}_prep_wake_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/prep/jhur${storm_num}_prep_atmos_${cyc}
     $SMSBIN/smsinit
     $SMSBIN/endt
     SMSNAME=/prod${prodcyc}/hur${cyc}/hur${storm_num}/prep/jhur${storm_num}_prep_ocean_${cyc} 
     $SMSBIN/smsinit
     $SMSBIN/endt
   fi
fi

#####################################################################
# GOOD RUN
set +x
echo "**************JOB $job COMPLETED NORMALLY "
echo "**************JOB $job COMPLETED NORMALLY "
echo "**************JOB $job COMPLETED NORMALLY "
set -x
#####################################################################
