
#  UTILITY SCRIPT NAME :  wmo5dayx.sh
#               AUTHOR :  Hua-Lu pan
#         DATE WRITTEN :  03/12/97
#
#  Abstract:  This utility script produces the WMO 5-day mean
#             bulletins, from the GFS forecast fields
#
#     Input:  none
#             This job requires the presence of the 1degx1deg GRIB file
#               for initial conditions for 00Z and 12Z at day 0, -1,...-4
#
#   History: SEPT, 1996 - First implementation of this utility script
#            NOV,  1998 - Modified the script to use 4-digit year
#            JUN,  1999 - Changed the input files name
#            AUG,  1999 - Modified for IBM SP
#

set -x

###############################
# Set Var to Allow Interactive Running 
###############################
export EXECutil=${EXECutil:-/nwprod/util/exec}
export EXECtime=${EXECtime:-/nwprod/exec}
export envir=${envir:-prod}
export jlogfile=${jlogfile:-jlogfile}
export NET=${NET:-gfs}
export RUN=${RUN:-gfs}
export cycle=${cycle:-t12z}
export SENDCOM=${SENDCOM:-NO}
export SENDDBN=${SENDDBN:-NO}
if [ -z "$DATA" ]
then
   export DATA=`pwd`
   cd $DATA
   /nwprod/util/ush/setup.sh
   /nwprod/util/ush/setpdy.sh
   . PDY
fi
export pcom=${pcom:-/pcom/$NET}
export job=${job:-interactive}
export pgmout=${pgmout:-OUTPUT.$$}

###############################
# Calculate Julian Day/Year 
###############################
rm MAPTIME
export pgm=ncep2maptime
. prep_step
startmsg
$EXECtime/ncep2maptime
err=$?;export err; err_chk

year=`echo $PDY | cut -c1-4`
julday=`cat MAPTIME | cut -c3-5`

leapyr=`expr $year % 4`
if [ $leapyr -eq 0 -a $julday -ge 60 ]
then
   julday=` expr $julday - 1 `
fi

###############################
# Calculate If Day is Divisible by 5 
###############################
day5=` expr $julday % 5`
if [ $day5 -eq 0 ]
then
   istop=1
else
   istop=0
fi

if [ $istop -eq 1 ];then
   cp /com/${NET}/${envir}/${NET}.${PDY}/${RUN}.t12z.pgrbf00 pgrbf00.day0.t12z
   cp /com/${NET}/${envir}/${NET}.${PDY}/${RUN}.t00z.pgrbf00 pgrbf00.day0.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm1}/${RUN}.t12z.pgrbf00 pgrbf00.day1.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm1}/${RUN}.t00z.pgrbf00 pgrbf00.day1.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm2}/${RUN}.t12z.pgrbf00 pgrbf00.day2.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm2}/${RUN}.t00z.pgrbf00 pgrbf00.day2.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm3}/${RUN}.t12z.pgrbf00 pgrbf00.day3.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm3}/${RUN}.t00z.pgrbf00 pgrbf00.day3.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm4}/${RUN}.t12z.pgrbf00 pgrbf00.day4.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm4}/${RUN}.t00z.pgrbf00 pgrbf00.day4.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm5}/${RUN}.t12z.pgrbf00 pgrbf00.day5.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm5}/${RUN}.t00z.pgrbf00 pgrbf00.day5.t00z
   cp /com/${NET}/${envir}/${NET}.${PDY}/${RUN}.t12z.pgrbif00 pgrbif00.day0.t12z
   cp /com/${NET}/${envir}/${NET}.${PDY}/${RUN}.t00z.pgrbif00 pgrbif00.day0.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm1}/${RUN}.t12z.pgrbif00 pgrbif00.day1.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm1}/${RUN}.t00z.pgrbif00 pgrbif00.day1.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm2}/${RUN}.t12z.pgrbif00 pgrbif00.day2.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm2}/${RUN}.t00z.pgrbif00 pgrbif00.day2.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm3}/${RUN}.t12z.pgrbif00 pgrbif00.day3.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm3}/${RUN}.t00z.pgrbif00 pgrbif00.day3.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm4}/${RUN}.t12z.pgrbif00 pgrbif00.day4.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm4}/${RUN}.t00z.pgrbif00 pgrbif00.day4.t00z
   cp /com/${NET}/${envir}/${NET}.${PDYm5}/${RUN}.t12z.pgrbif00 pgrbif00.day5.t12z
   cp /com/${NET}/${envir}/${NET}.${PDYm5}/${RUN}.t00z.pgrbif00 pgrbif00.day5.t00z

   export pgm=wmo5dayx
   . prep_step

   export XLFUNIT_11="pgrbf00.day0.t12z"
   export XLFUNIT_12="pgrbf00.day0.t00z"
   export XLFUNIT_13="pgrbf00.day1.t12z"
   export XLFUNIT_14="pgrbf00.day1.t00z"
   export XLFUNIT_15="pgrbf00.day2.t12z"
   export XLFUNIT_16="pgrbf00.day2.t00z"
   export XLFUNIT_17="pgrbf00.day3.t12z"
   export XLFUNIT_18="pgrbf00.day3.t00z"
   export XLFUNIT_19="pgrbf00.day4.t12z"
   export XLFUNIT_20="pgrbf00.day4.t00z"
   export XLFUNIT_21="pgrbf00.day5.t12z"
   export XLFUNIT_22="pgrbf00.day5.t00z"
   export XLFUNIT_31="pgrbif00.day0.t12z"
   export XLFUNIT_32="pgrbif00.day0.t00z"
   export XLFUNIT_33="pgrbif00.day1.t12z"
   export XLFUNIT_34="pgrbif00.day1.t00z"
   export XLFUNIT_35="pgrbif00.day2.t12z"
   export XLFUNIT_36="pgrbif00.day2.t00z"
   export XLFUNIT_37="pgrbif00.day3.t12z"
   export XLFUNIT_38="pgrbif00.day3.t00z"
   export XLFUNIT_39="pgrbif00.day4.t12z"
   export XLFUNIT_40="pgrbif00.day4.t00z"
   export XLFUNIT_41="pgrbif00.day5.t12z"
   export XLFUNIT_42="pgrbif00.day5.t00z"
   export XLFUNIT_51="wmo5day.bul"

   startmsg
   $EXECutil/wmo5dayx >> $pgmout 2> errfile
   export err=$?;err_chk

   ############################################
   #  Send bulletin through dbNet
   ############################################

   if test "$SENDCOM" = 'YES'
   then
      cp wmo5day.bul $pcom/wmo5day.bul.$job

      if test "$SENDDBN" = 'YES'
      then
         $USHutil/make_ntc_bull.pl  WMOHD NONE KWNO NONE   \
              wmo5day.bul $pcom/wmo5day.bul.$job    
      else
         msg="wmo5day dbnet alert not sent"
         postmsg "$jlogfile" "$msg"
      fi
   fi
else
   msg="wmo5day is run once every 5 days. It is not done today"
   postmsg "$jlogfile" "$msg"
fi

exit
