#!/bin/sh
# --- 02/07/97 ---------- EXSURGE SCRIPT --------------------------
#
set +x
echo " ---------------------------------------------------------"
echo "  "
echo "                   STORM SURGE"
echo "  "
echo "  "
echo "                   JOB gfs_stormsurge "
echo "  "
echo "          ANALYSIS CYCLE TIME IS .. $CYCLE"
echo "  "
echo "  "
echo "  "
echo " ---------------------------------------------------------"
echo "        processing info for this execution      "
echo "Processing environment is .............. ${envir}"
echo "Temporary processing file directory is . $DATA"
echo "  "
echo "Executable SURGE directory is .......... $EXECmdl"
echo "Unix Control Language directory is ..... $PARMmdl"
echo "FIX-field directory is ................. $FIXmdl"
echo "  "
echo "Network id is .......................... $NET"
echo "Run id for com files is ................ $RUN"
echo "  "
echo "Unique machine processing id is ........ $pid"
echo "Temporary Output file is ............... $pgmout"
echo "YES SENDDBN means post messages ........ $SENDDBN"
echo "YES SENDCOM means save com files ....... $SENDCOM"
echo " "
echo " ---------------------------------------------------------"
echo " ---------------------------------------------------------"
echo "HISTORY: Oct 03, 1995 - implement Storm Surge"
echo "HISTORY: Feb 07, 1996 - added qsub to ftp the UCL files"
echo "         from the machine in which it ran to the other"
echo "         two Crays."
echo "         Linked the gribex executable in here file exapplywnd,"
echo "         to a more discriptive word to aid in monitoring"
echo "         We no longer save the old cylf10'${bsn}' file to the"
echo "         com files, it is saved only to $PARMmdl dir."
echo "         In here file output_hds, place directions to submit"
echo "         the file to the front end in case of an ftp failure"
echo "         In here file output_com, took off the .new from"
echo "         file ss.${CYCLE}.cylf10'${bsn}' Also, the file"
echo "         ss.gribi${CYL} has '${bsn}' appended on it."
echo "         In here file SENDBULLETIN, added a test for the ftp"
echo "         transfer of the jcl to the HDS."
echo "HISTORY: 03/19/96 - Major script changes."
echo "         01/28/97 - Script changes to use the Cray version"
echo "         of FORMBULL to generate the FQUS23, the FQAC40,"
echo "         and the FQGX40 messages which contain the extra-"
echo "         tropical storm surge forecasts for the Atlantic"
echo "         Coast, the Bering Sea, and the Gulf of Mexico,"
echo "         respectively"
echo "         02/07/97 - Removed as many references to HDS as possible"
echo "                    operator messages can still be disposed to HDS"
echo "         04/30/97 - Added qsub to kick off MDL owned job."
echo "         08/26/98 - Data is no longer stored in /nwprod/mdl/parm."
echo "                    Instead it will be in /com/gfs/prod/gfs.YYMMDD."
echo "         09/02/98 - Modified by Peter Henrichsen to use script"
echo "                    onebul.sh to make and send storm surge"
echo "                    bulletins."
echo "         03/08/00 - Modified by Steve Gilbert to run on IBM SP"
echo "         09/25/00 - Added West Coast and Arctic basins.       "
echo "         11/28/00 - Modified by Peter Henrichsen to replace"
echo "                    onebul.sh with perl script formbul.pl"
echo "         06/12/02 - Added dbnet alerts to get files to TGFTP"
echo "         09/01/01 - Model changes using all 4 cycles of GFS's"
echo "         analyses. Do without rotating the analysis files. J. Chen"
echo "         08/16/02 - Combined J.Chen's version with operational script"
echo "         10/16/05 - Modified to send text bulletins to TOC via the   "
echo "         10/16/05 - NTC rather than the status file.                 "
echo " ---------------------------------------------------------"

set -x

######################################################################
#  Prepare data before running program to extract current and
#    forecast (future) global surface pressure, and U and V wind
#    vector fields.
######################################################################

msg="Begin job for $job"
postmsg "$jlogfile" "$msg"
echo "`date`: Start" > timing.txt

export COMFILES=$COMIN/${RUN}.${cycle}

cp $COMFILES.pgrbif00  pgrbif00
cp $COMFILES.pgrbf00   pgrbf00
cp $COMFILES.pgrbif03  pgrbif03
cp $COMFILES.pgrbf03   pgrbf03
cp $COMFILES.pgrbif06  pgrbif06
cp $COMFILES.pgrbf06   pgrbf06
cp $COMFILES.pgrbif09  pgrbif09
cp $COMFILES.pgrbf09   pgrbf09
cp $COMFILES.pgrbif12  pgrbif12
cp $COMFILES.pgrbf12   pgrbf12
cp $COMFILES.pgrbif15  pgrbif15
cp $COMFILES.pgrbf15   pgrbf15
cp $COMFILES.pgrbif18  pgrbif18
cp $COMFILES.pgrbf18   pgrbf18
cp $COMFILES.pgrbif21  pgrbif21
cp $COMFILES.pgrbf21   pgrbf21
cp $COMFILES.pgrbif24  pgrbif24
cp $COMFILES.pgrbf24   pgrbf24
cp $COMFILES.pgrbif27  pgrbif27
cp $COMFILES.pgrbf27   pgrbf27
cp $COMFILES.pgrbif30  pgrbif30
cp $COMFILES.pgrbf30   pgrbf30
cp $COMFILES.pgrbif33  pgrbif33
cp $COMFILES.pgrbf33   pgrbf33
cp $COMFILES.pgrbif36  pgrbif36
cp $COMFILES.pgrbf36   pgrbf36
cp $COMFILES.pgrbif39  pgrbif39
cp $COMFILES.pgrbf39   pgrbf39
cp $COMFILES.pgrbif42  pgrbif42
cp $COMFILES.pgrbf42   pgrbf42
cp $COMFILES.pgrbif45  pgrbif45
cp $COMFILES.pgrbf45   pgrbf45
cp $COMFILES.pgrbif48  pgrbif48
cp $COMFILES.pgrbf48   pgrbf48

cp $COMFILES.pgrbif51  pgrbif51
cp $COMFILES.pgrbf51   pgrbf51
cp $COMFILES.pgrbif54  pgrbif54
cp $COMFILES.pgrbf54   pgrbf54
cp $COMFILES.pgrbif57  pgrbif57
cp $COMFILES.pgrbf57   pgrbf57
cp $COMFILES.pgrbif60  pgrbif60
cp $COMFILES.pgrbf60   pgrbf60
cp $COMFILES.pgrbif63  pgrbif63
cp $COMFILES.pgrbf63   pgrbf63
cp $COMFILES.pgrbif66  pgrbif66
cp $COMFILES.pgrbf66   pgrbf66
cp $COMFILES.pgrbif69  pgrbif69
cp $COMFILES.pgrbf69   pgrbf69
cp $COMFILES.pgrbif72  pgrbif72
cp $COMFILES.pgrbf72   pgrbf72
cp $COMFILES.pgrbif75  pgrbif75
cp $COMFILES.pgrbf75   pgrbf75
cp $COMFILES.pgrbif78  pgrbif78
cp $COMFILES.pgrbf78   pgrbf78
cp $COMFILES.pgrbif81  pgrbif81
cp $COMFILES.pgrbf81   pgrbf81
cp $COMFILES.pgrbif84  pgrbif84
cp $COMFILES.pgrbf84   pgrbf84
cp $COMFILES.pgrbif87  pgrbif87
cp $COMFILES.pgrbf87   pgrbf87
cp $COMFILES.pgrbif90  pgrbif90
cp $COMFILES.pgrbf90   pgrbf90
cp $COMFILES.pgrbif93  pgrbif93
cp $COMFILES.pgrbf93   pgrbf93
cp $COMFILES.pgrbif96  pgrbif96
cp $COMFILES.pgrbf96   pgrbf96

echo "`date`: Finished first file copies" >> timing.txt

######################################################################
#  Run program to extract current and forecast (future) global
#    surface pressure, and U and V wind vector fields.
######################################################################
export pgm="mdl_cy_puv10"
. prep_step

export XLFUNIT_11=pgrbf00
export XLFUNIT_12=pgrbf03
export XLFUNIT_13=pgrbf06
export XLFUNIT_14=pgrbf09
export XLFUNIT_15=pgrbf12
export XLFUNIT_16=pgrbf15
export XLFUNIT_17=pgrbf18
export XLFUNIT_18=pgrbf21
export XLFUNIT_19=pgrbf24
export XLFUNIT_20=pgrbf27
export XLFUNIT_21=pgrbf30
export XLFUNIT_22=pgrbf33
export XLFUNIT_23=pgrbf36
export XLFUNIT_24=pgrbf39
export XLFUNIT_25=pgrbf42
export XLFUNIT_26=pgrbf45
export XLFUNIT_27=pgrbf48
export XLFUNIT_28=pgrbf51
export XLFUNIT_29=pgrbf54
export XLFUNIT_30=pgrbf57
export XLFUNIT_31=pgrbf60
export XLFUNIT_32=pgrbf63
export XLFUNIT_33=pgrbf66
export XLFUNIT_34=pgrbf69
export XLFUNIT_35=pgrbf72
export XLFUNIT_36=pgrbf75
export XLFUNIT_37=pgrbf78
export XLFUNIT_38=pgrbf81
export XLFUNIT_39=pgrbf84
export XLFUNIT_40=pgrbf87
export XLFUNIT_41=pgrbf90
export XLFUNIT_42=pgrbf93
export XLFUNIT_43=pgrbf96

export XLFUNIT_46=pgrbif00
export XLFUNIT_47=pgrbif03
export XLFUNIT_48=pgrbif06
export XLFUNIT_49=pgrbif09
export XLFUNIT_50=pgrbif12
export XLFUNIT_51=pgrbif15
export XLFUNIT_52=pgrbif18
export XLFUNIT_53=pgrbif21
export XLFUNIT_54=pgrbif24
export XLFUNIT_55=pgrbif27
export XLFUNIT_56=pgrbif30
export XLFUNIT_57=pgrbif33
export XLFUNIT_58=pgrbif36
export XLFUNIT_59=pgrbif39
export XLFUNIT_60=pgrbif42
export XLFUNIT_61=pgrbif45
export XLFUNIT_62=pgrbif48
export XLFUNIT_63=pgrbif51
export XLFUNIT_64=pgrbif54
export XLFUNIT_65=pgrbif57
export XLFUNIT_66=pgrbif60
export XLFUNIT_67=pgrbif63
export XLFUNIT_68=pgrbif66
export XLFUNIT_69=pgrbif69
export XLFUNIT_70=pgrbif72
export XLFUNIT_71=pgrbif75
export XLFUNIT_72=pgrbif78
export XLFUNIT_73=pgrbif81
export XLFUNIT_74=pgrbif84
export XLFUNIT_75=pgrbif87
export XLFUNIT_76=pgrbif90
export XLFUNIT_77=pgrbif93
export XLFUNIT_78=pgrbif96

export XLFUNIT_81=gfsp.tmp
export XLFUNIT_82=gfsu.tmp
export XLFUNIT_83=gfsv.tmp

export XLFUNIT_84=$PARMmdl/mdl_ft11.egawz
export XLFUNIT_85=gfspuv.${cyc}e
export XLFUNIT_86=gfspuv.${cyc}g
export XLFUNIT_87=gfspuv.${cyc}a
export XLFUNIT_88=gfspuv.${cyc}w
export XLFUNIT_89=gfspuv.${cyc}z
export XLFUNIT_90=gfspuv.${cyc}k
# export XLFUNIT_91=gfspuv.${cyc}m
export XLFUNIT_96=sds.${cyc}

startmsg
$EXECmdl/mdl_cy_puv10 >>$pgmout 2>errfile
err=$?;export err; err_chk

echo "`date`: Finished extract forecast winds" >> timing.txt

######################################################################
#  Save extracted current and forecast (future) global surface
#    pressure, and U and V wind vector fields for each basin.
#  This is so that one can re-run the model in the future.
######################################################################

if test "$SENDCOM" = 'YES'
then
  cp gfspuv.${cyc}e $COMOUT
  cp gfspuv.${cyc}g $COMOUT
  cp gfspuv.${cyc}a $COMOUT
  cp gfspuv.${cyc}w $COMOUT
  cp gfspuv.${cyc}z $COMOUT
  cp gfspuv.${cyc}k $COMOUT
fi

echo "`date`: Finished copy extracted winds" >> timing.txt

######################################################################
#  Prepare data before running program to extract Past (historic)
#    global surface pressure, and U and V wind vector fields.
#  Needs 60 hours back...
#    (ie cycle 0Z day 0 needs back to cycle 12Z day -3)
#  Use PDYm1,PDYm2.... for -1 day, -2 day ...
#  The reason this is so long is to keep it simple.
######################################################################

CYCLE1='t00z'
CYCLE2='t06z'
CYCLE3='t12z'
CYCLE4='t18z'


# Files needed by all cycles (0,6,12,18)...
#     6Z of -2 day to 18Z of -1 day
cp $COMINm2/${RUN}.$CYCLE2.pgrbif00  pgrbif206
cp $COMINm2/${RUN}.$CYCLE2.pgrbf00   pgrbf206
cp $COMINm2/${RUN}.$CYCLE3.pgrbif00  pgrbif212
cp $COMINm2/${RUN}.$CYCLE3.pgrbf00   pgrbf212
cp $COMINm2/${RUN}.$CYCLE4.pgrbif00  pgrbif218
cp $COMINm2/${RUN}.$CYCLE4.pgrbf00   pgrbf218
cp $COMINm1/${RUN}.$CYCLE1.pgrbif00  pgrbif100
cp $COMINm1/${RUN}.$CYCLE1.pgrbf00   pgrbf100
cp $COMINm1/${RUN}.$CYCLE2.pgrbif00  pgrbif106
cp $COMINm1/${RUN}.$CYCLE2.pgrbf00   pgrbf106
cp $COMINm1/${RUN}.$CYCLE3.pgrbif00  pgrbif112
cp $COMINm1/${RUN}.$CYCLE3.pgrbf00   pgrbf112
cp $COMINm1/${RUN}.$CYCLE4.pgrbif00  pgrbif118
cp $COMINm1/${RUN}.$CYCLE4.pgrbf00   pgrbf118

#  Cycle 0 needs 12Z 18Z of -3 day and 0Z of -2 day
if test $cyc = "00"
then
  cp $COMINm3/${RUN}.$CYCLE3.pgrbif00  pgrbif312
  cp $COMINm3/${RUN}.$CYCLE3.pgrbf00   pgrbf312
  cp $COMINm3/${RUN}.$CYCLE4.pgrbif00  pgrbif318
  cp $COMINm3/${RUN}.$CYCLE4.pgrbf00   pgrbf318
  cp $COMINm2/${RUN}.$CYCLE1.pgrbif00  pgrbif200
  cp $COMINm2/${RUN}.$CYCLE1.pgrbf00   pgrbf200
fi

#  For 06Z cycle
if test $cyc = "06"
then
#  Cycle 6 needs 18Z of -3 day and 0Z of -2 day
  cp $COMINm3/${RUN}.$CYCLE4.pgrbif00  pgrbif318
  cp $COMINm3/${RUN}.$CYCLE4.pgrbf00   pgrbf318
  cp $COMINm2/${RUN}.$CYCLE1.pgrbif00  pgrbif200
  cp $COMINm2/${RUN}.$CYCLE1.pgrbf00   pgrbf200
#  Cycle 6 needs 0Z of current day
  cp $COMIN/${RUN}.$CYCLE1.pgrbif00  pgrbif00
  cp $COMIN/${RUN}.$CYCLE1.pgrbf00   pgrbf00
fi


#  For the 12Z cycle
if test $cyc = "12"
then
#  Cycle 12 needs 0Z of -2 day
  cp $COMINm2/${RUN}.$CYCLE1.pgrbif00  pgrbif200
  cp $COMINm2/${RUN}.$CYCLE1.pgrbf00   pgrbf200
#  Cycle 12 needs 0Z 6Z of current day
  cp $COMIN/${RUN}.$CYCLE1.pgrbif00  pgrbif00
  cp $COMIN/${RUN}.$CYCLE1.pgrbf00   pgrbf00
  cp $COMIN/${RUN}.$CYCLE2.pgrbif00  pgrbif06
  cp $COMIN/${RUN}.$CYCLE2.pgrbf00   pgrbf06
fi

#  Cycle 18 needs 0Z 6Z 12Z of current day
if test $cyc = "18"
then
  cp $COMIN/${RUN}.$CYCLE1.pgrbif00  pgrbif00
  cp $COMIN/${RUN}.$CYCLE1.pgrbf00   pgrbf00
  cp $COMIN/${RUN}.$CYCLE2.pgrbif00  pgrbif06
  cp $COMIN/${RUN}.$CYCLE2.pgrbf00   pgrbf06
  cp $COMIN/${RUN}.$CYCLE3.pgrbif00  pgrbif12
  cp $COMIN/${RUN}.$CYCLE3.pgrbf00   pgrbf12
fi

echo "`date`: Finished Second copy of files" >> timing.txt

######################################################################
#  Run program to extract Past (historic) global surface pressure,
#    and U and V wind vector fields.
######################################################################
export pgm="mdl_c10_gen"
. prep_step

if test $cyc = "00"
then
  export XLFUNIT_31=pgrbif312
  export XLFUNIT_11=pgrbf312
  export XLFUNIT_32=pgrbif318
  export XLFUNIT_12=pgrbf318
  export XLFUNIT_33=pgrbif200
  export XLFUNIT_13=pgrbf200
  export XLFUNIT_34=pgrbif206
  export XLFUNIT_14=pgrbf206
  export XLFUNIT_35=pgrbif212
  export XLFUNIT_15=pgrbf212
  export XLFUNIT_36=pgrbif218
  export XLFUNIT_16=pgrbf218
  export XLFUNIT_37=pgrbif100
  export XLFUNIT_17=pgrbf100
  export XLFUNIT_38=pgrbif106
  export XLFUNIT_18=pgrbf106
  export XLFUNIT_39=pgrbif112
  export XLFUNIT_19=pgrbf112
  export XLFUNIT_40=pgrbif118
  export XLFUNIT_20=pgrbf118
fi

if test $cyc = "06"
then
  export XLFUNIT_31=pgrbif318
  export XLFUNIT_11=pgrbf318
  export XLFUNIT_32=pgrbif200
  export XLFUNIT_12=pgrbf200
  export XLFUNIT_33=pgrbif206
  export XLFUNIT_13=pgrbf206
  export XLFUNIT_34=pgrbif212
  export XLFUNIT_14=pgrbf212
  export XLFUNIT_35=pgrbif118
  export XLFUNIT_15=pgrbf118
  export XLFUNIT_36=pgrbif100
  export XLFUNIT_16=pgrbf100
  export XLFUNIT_37=pgrbif106
  export XLFUNIT_17=pgrbf106
  export XLFUNIT_38=pgrbif112
  export XLFUNIT_18=pgrbf112
  export XLFUNIT_39=pgrbif18
  export XLFUNIT_19=pgrbf18
  export XLFUNIT_40=pgrbif00
  export XLFUNIT_20=pgrbf00
fi

if test $cyc = "12"
then
  export XLFUNIT_31=pgrbif300
  export XLFUNIT_11=pgrbf300
  export XLFUNIT_32=pgrbif206
  export XLFUNIT_12=pgrbf206
  export XLFUNIT_33=pgrbif212
  export XLFUNIT_13=pgrbf212
  export XLFUNIT_34=pgrbif218
  export XLFUNIT_14=pgrbf218
  export XLFUNIT_35=pgrbif200
  export XLFUNIT_15=pgrbf200
  export XLFUNIT_36=pgrbif106
  export XLFUNIT_16=pgrbf106
  export XLFUNIT_37=pgrbif112
  export XLFUNIT_17=pgrbf112
  export XLFUNIT_38=pgrbif118
  export XLFUNIT_18=pgrbf118
  export XLFUNIT_39=pgrbif00
  export XLFUNIT_19=pgrbf00
  export XLFUNIT_40=pgrbif06
  export XLFUNIT_20=pgrbf06
fi

if test $cyc = "18"
then
  export XLFUNIT_31=pgrbif206
  export XLFUNIT_11=pgrbf206
  export XLFUNIT_32=pgrbif212
  export XLFUNIT_12=pgrbf212
  export XLFUNIT_33=pgrbif218
  export XLFUNIT_13=pgrbf218
  export XLFUNIT_34=pgrbif100
  export XLFUNIT_14=pgrbf100
  export XLFUNIT_35=pgrbif106
  export XLFUNIT_15=pgrbf106
  export XLFUNIT_36=pgrbif112
  export XLFUNIT_16=pgrbf112
  export XLFUNIT_37=pgrbif18
  export XLFUNIT_17=pgrbf18
  export XLFUNIT_38=pgrbif00
  export XLFUNIT_18=pgrbf00
  export XLFUNIT_39=pgrbif06
  export XLFUNIT_19=pgrbf06
  export XLFUNIT_40=pgrbif12
  export XLFUNIT_20=pgrbf12
fi

export XLFUNIT_30=$PARMmdl/mdl_ft11.egawz
export XLFUNIT_51=cylf10.${cyc}e
export XLFUNIT_52=cylf10.${cyc}g
export XLFUNIT_53=cylf10.${cyc}a
export XLFUNIT_54=cylf10.${cyc}w
export XLFUNIT_55=cylf10.${cyc}z
export XLFUNIT_56=cylf10.${cyc}k
# export XLFUNIT_57=cylf10.${cyc}m
export XLFUNIT_96='sds.$cyc'
export XLFUNIT_81='gfsp.tmp'
export XLFUNIT_82='gfsu.tmp'
export XLFUNIT_83='gfsv.tmp'

startmsg
$EXECmdl/mdl_c10_gen >>$pgmout 2>errfile
err=$?;export err; err_chk

echo "`date`: Finished Getting the forcings (starting runs)" >> timing.txt

######################################################################
# There are 6 basins for which forecasts are made.
#   1) e = East Coast Basin  (FQUS23 KWNO, MRP SSE)
#   2) g = Gulf Coast Basin  (FQGX23 KWNO, MRP SSG)
#   3) a = Alaska Basin      (FQAK23 KWNO, MRP SSB)
#   4) w = West Coast Basin  (FQPZ23 KWNO, MRP SSP)
#   5) z = Artic Basin       (FQAC23 KWNO, MRP SSA)
#   6) k = Gulf of AK        (FQGA23 KWNO, MRP SSC)
######################################################################

## for bsn in e g a w z k
## do
##  ####################################################################
##  #  Run extratropical storm surge model.
##  ####################################################################
##  export pgm="mdl_ext_6h"
####  . prep_step
##
##  export XLFUNIT_96=sds.${cyc}
##  export XLFUNIT_11=$PARMmdl/mdl_ft11.${bsn}
##  export XLFUNIT_14=$PARMmdl/mdl_ettgp.${bsn}
##  export XLFUNIT_19=$PARMmdl/mdl_etbsn.${bsn}
##  export XLFUNIT_21=$PARMmdl/mdl_ft01.ega
##  export XLFUNIT_25=$PARMmdl/mdl_etltlg.${bsn}
##  export XLFUNIT_33=cylf10.${cyc}${bsn}
##  export XLFUNIT_34=gfspuv.${cyc}${bsn}
##  export XLFUNIT_81=fle10.tmp
##  export XLFUNIT_82=fle20.tmp
##  export XLFUNIT_83=fle30.tmp
##  export XLFUNIT_84=fle40.tmp
##  export XLFUNIT_85=fle50.tmp
##  export XLFUNIT_86=fle60.tmp
##  export XLFUNIT_52=sshistory.${cyc}${bsn}
##  export XLFUNIT_53=ssgrid.${cyc}${bsn}
##
#### startmsg
##  $EXECmdl/mdl_ext_6h >>$pgmout 2>errfile
#### err=$?;export err; err_chk
##  echo "`date`: Finished Run for ${bsn}" >> timing.txt
##done      #  Basin loop

echo "${USHmdl}/gfs_stormsurge_poe.sh g ${cyc} ${PARMmdl} ${EXECmdl}" > poescript
echo "${USHmdl}/gfs_stormsurge_poe.sh other ${cyc} ${PARMmdl} ${EXECmdl}" >> poescript
chmod 755 poescript
export MP_PGMMODEL=mpmd
export MP_LABELIO=YES
poe -cmdfile poescript

###################################################################
#  Post process the basin runs.
####################################################################
for bsn in e g a w z k
do
  ####################################################################
  #  Run program to extract storm surge output.
  ####################################################################
  export pgm="mdl_mdlsurge"
  . prep_step

  export XLFUNIT_11=$PARMmdl/mdl_ft11.${bsn}
  export XLFUNIT_16=gfspuv.${cyc}${bsn}
  export XLFUNIT_17=sshistory.${cyc}${bsn}
  export XLFUNIT_58=mdlsurge.${cyc}${bsn}
  export XLFUNIT_96=sds.${cyc}

  startmsg
  $EXECmdl/mdl_mdlsurge >>$pgmout 2>errfile
  err=$?;export err; err_chk
  echo "`date`: Finished Extracting text answers for ${bsn}" >> timing.txt

  ####################################################################
  #  Save model output files (and some input files),  so that one can
  #    re-run the model in the future.
  ####################################################################

  if test "$SENDCOM" = 'YES'
  then
    cp mdlsurge.${cyc}${bsn} $COMOUT/mdlsurge.${cyc}${bsn}
    cp sshistory.${cyc}${bsn} $COMOUT/sshistory.${cyc}${bsn}
    cp $DATA/sds.${cyc} $COMOUT/sds.${cyc}
    cp $DATA/cylf10.${cyc}${bsn} $COMOUT/cylf10.${cyc}${bsn}
  fi

  ####################################################################
  #  Send text messages to NWS FTP server.
  ####################################################################

   if test "$SENDDBN" = 'YES'
   then
   $DBNROOT/bin/dbn_alert MDLFCST ETSSTXT $job $COMOUT/mdlsurge.${cyc}${bsn}
   fi

  #
  # create the extratropical storm surge bulletins by using NCEP's
  # formbul.pl software to make the bulletins.
  #

  case $bsn in

    e)
      name="fqus23"
      $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    g)
      name="fqgx23"
      $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    a)
      name="fqak23"
      $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    w)
      name="fqpz23"
      $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    z)
      name="fqac23"
     $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    k)
      continue ;;
#      name="fqga23"
#     $USHutil/form_ntc.pl  -d $name -f mdlsurge.${cyc}${bsn} \
#      -j $job -m $model  -p $pcom -s $SENDDBN -o ${name}.tran.$job ;;
    *)
      continue ;;
  esac

  echo "`date`: Finished Transmitting text answers for ${bsn}" >> timing.txt

done      #  Basin loop

#####################################################################
# Merge the results onto NDFD Conus (con) and Alaska (ala) grids.
# This is a copy of what is in "gridmerge.sh.sms"
#####################################################################
for area in con ala
do
  ####################################################################
  #  Run gridmerge program
  ####################################################################
  export pgm="gridmerge"
  . prep_step

  ##########set up date info... PDY is today, PDYm1 one day ago... etc.
  echo $PDY $cyc > $DATA/datetime.txt
  export XLFUNIT_17=$DATA/datetime.txt
  ##########write area and cycle into control file
  echo $area $cyc > $DATA/mdl_etcontrol.txt
  export XLFUNIT_11=$DATA/mdl_etcontrol.txt
  
  export XLFUNIT_12=$PARMmdl/mdl_etgrids.${area}
  if test "$area" = 'con'
  then
   export XLFUNIT_13=ssgrid.${cyc}e
   export XLFUNIT_14=ssgrid.${cyc}g
   export XLFUNIT_15=ssgrid.${cyc}w
   export XLFUNIT_16=$PARMmdl/mdl_etconus.bin
  fi

  if test "$area" = 'ala'
  then
   export XLFUNIT_13=ssgrid.${cyc}a
   export XLFUNIT_14=ssgrid.${cyc}z
   export XLFUNIT_15=ssgrid.${cyc}k
   export XLFUNIT_16=$PARMmdl/mdl_etalaska.bin
  fi

  export XLFUNIT_53=mdlsurgegrid.${cyc}${area}

  startmsg
  $EXECmdl/mdl_gridmerge
  err=$?;export err; err_chk
  echo "`date`: Finished Creating GRIB message for ${area}" >> timing.txt
  
  #############################
  # Add headers
  #############################
  export pgm=tocgrib2
  . prep_step

  export XLFRTEOPTS="unit_vars=yes"
  export XLFUNIT_11=mdlsurgegrid.${cyc}${area}
  export XLFUNIT_31=""
  export XLFUNIT_51=grib2.mdlsurgegrid.${cyc}${area}

  startmsg
  ${utilexec}/tocgrib2 < $PARMutil/grib2.t${cyc}z.mdl_etsurge_${area}  >> $pgmout 2> errfile
  export err=$?;err_chk

  ##############################################
  # Save output (mdlsurgegrid.$cyc$area used to rerun model)
  ##############################################
  if [ $SENDCOM = YES ]
  then
     cp mdlsurgegrid.${cyc}${area} $COMOUT/mdlsurgegrid.${cyc}${area}
     cp grib2.mdlsurgegrid.${cyc}${area} $COMOUT/grib2.mdlsurgegrid.${cyc}${area}
  fi

  ################################################
  # Alert the file (WOC SBN)
  ################################################
  if test "$SENDDBN" = 'YES'
  then
    cp grib2.mdlsurgegrid.${cyc}${area} $pcom/grib2.mdlsurgegrid.${cyc}${area}.${job} 
    $DBNROOT/bin/dbn_alert NTC_LOW gfs $job $pcom/grib2.mdlsurgegrid.${cyc}${area}.${job}
  fi

  ################################################
  # Alert the file (WOC ftp)
  ################################################
  if test "$SENDDBN" = 'YES'
  then
    $DBNROOT/bin/dbn_alert MDLFCST ETSSGB2 $job $COMOUT/grib2.mdlsurgegrid.${cyc}${area}  
  fi
  echo "`date`: Finished putting header in for GRIB message for ${area}" >> timing.txt
done


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

cat $pgmout

msg="HAS COMPLETED NORMALLY!"
echo $msg
postmsg "$jlogfile" "$msg"
############## END OF SCRIPT #######################