

# Script to recover JTWC Bulletins from Tank
#  $TANK_TROPCY/$ymddir/wtxtbul/tropcyc

#  Y2K VERSION --  This script can process JTWC bulletins with EITHER a
#                    2-digit year starting in column 20 or a 4-digit year
#                    starting in column 20.

#
#
# Positional parameters passed in:
#   1 - Run date (YYYYMMDDHH)

# Imported variables that must be passed in:
#   DATA         - path to working directory
#   pgmout       - string indicating path to for standard output file
#   EXECSYND     - path to syndat executable directory
#   TANK_TROPCY  - path to home directory containing tropical cyclone record
#                  data base

# Imported variables that can be passed in:
#   jlogfile  - path to job log file (skipped over by this script if not
#                 passed in)


set -xua

cd $DATA

if [ "$#" -ne '1' ]; then
   msg="**NON-FATAL ERROR PROGRAM  SYNDAT_GETJTBUL  run date not in \
positional parameter 1"
   set +x
   echo
   echo $msg
   echo
   set -x
   echo $msg >> $pgmout
   set +u
   [ -n "$jlogfile" ]  &&  postmsg "$jlogfile" "$msg"
   set -u

echo "Leaving sub-shell syndat_getjtbul.sh to recover JTWC Bulletins" \
 >> $pgmout
echo " " >> $pgmout

   exit
fi

CDATE10=$1

ymd=`echo $CDATE10 | cut -c3-8`
pdy=`echo $CDATE10 | cut -c1-8`
hour=`echo $CDATE10 | cut -c9-10`

pdym1=`sh /nwprod/util/ush/finddate.sh $pdy d-1`

echo " " >> $pgmout
echo "Entering sub-shell syndat_getjtbul.sh to recover JTWC Bulletins" \
 >> $pgmout
echo " " >> $pgmout


if test $hour -eq "00"
then

# For 00Z cycle, need to go to prior day's tank
# ---------------------------------------------

   ymddir=$pdy
   jtwcdir=$TANK_TROPCY/$pdy/wtxtbul
   jtwcdirm1=$TANK_TROPCY/$pdym1/wtxtbul
else
   ymddir=$pdy
   jtwcdir=$TANK_TROPCY/$pdy/wtxtbul
fi


set +x
echo
echo "  Run date is $CDATE10"
echo
echo "  pdy is      $pdy"
echo
echo "  pdym1 is    $pdym1"
echo
echo "  ymddir is   $ymddir"
echo
set -x

find=$ymd" "$hour
echo "looking for string  $find  in $jtwcdir/tropcyc" >> $pgmout

rm jtwcbul
grep "$ymd $hour" $jtwcdir/tropcyc | grep JTWC > jtwcbul
if [ -s jtwcbul ]; then
   echo "String found: contents of JTWC bulletin are:" >> $pgmout
   cat jtwcbul >> $pgmout
else
   echo "String not found: no JTWC bulletins available for this run" >> $pgmout
fi

if test $hour -eq "00"
then
   grep "$ymd $hour" $jtwcdirm1/tropcyc | grep JTWC >> jtwcbul
   if [ -s jtwcbul ]; then
      echo "String found: contents of JTWC bulletin are:" >> $pgmout
      cat jtwcbul >> $pgmout
   else
      echo "String not found: no JTWC bulletins available for this run" >> $pgmout
   fi
fi


# Execute bulletin processing

[ -s jtwcbul ] && echo "Processing JTWC bulletin halfs into tcvitals records" >> $pgmout

pgm=`basename $EXECSYND/syndat_getjtbul`
export pgm
if [ -s prep_step ]; then
   set +u
   . prep_step
   set -u
else
   [ -f errfile ] && rm errfile
   export XLFUNITS=0
   unset `env | grep XLFUNIT | awk -F= '{print $1}'`

   set +u
   if [ -z "$XLFRTEOPTS" ]; then
     export XLFRTEOPTS="unit_vars=yes"
   else
     export XLFRTEOPTS="${XLFRTEOPTS}:unit_vars=yes"
   fi
   set -u
fi

rm fnoc

export XLFUNIT_11=jtwcbul
export XLFUNIT_51=fnoc
timex $EXECSYND/syndat_getjtbul >> $pgmout 2> errfile
errget=$?
###cat errfile
cat errfile >> $pgmout
rm errfile
set +x
echo
echo 'The foreground exit status for SYNDAT_GETJTBUL is ' $errget
echo
set -x
if [ "$errget" -gt '0' ];then
   if [ "$errget" -eq '1' ];then
      msg="No JTWC bulletins in $jtwcdir/tropcyc, no JTWC tcvitals \
available for qctropcy for $CDATE10"
      if [ "$RUN" = 'gfs' ]; then
        if [ "$SENDSDM" = 'YES' ]; then
         echo $msg > sdm_email_tmp
         cat  sdm_email_tmp | mail -s "No JTWC bulletins available for $CDATE10 $RUN run" sdm@noaa.gov
        fi
      fi
   else
      msg="**NON-FATAL ERROR PROGRAM  SYNDAT_GETJTBUL  FOR $CDATE10 \
RETURN CODE $errget"
   fi
   set +x
   echo
   echo $msg
   echo
   set -x
   echo $msg >> $pgmout
   set +u
   [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg"
   set -u
else
   msg="program  SYNDAT_GETJTBUL  completed normally for $CDATE10, JTWC \
rec. passed to qctropcy"
   set +x
   echo
   echo $msg
   echo
   set -x
   echo $msg >> $pgmout
   set +u
   [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg"
   set -u
fi
set +x
echo
echo "----------------------------------------------------------"
echo "***********  COMPLETED PROGRAM syndat_getjtbul  **********"
echo "----------------------------------------------------------"
echo
set -x

if [ "$errget" -eq '0' ];then
   echo "Completed JTWC tcvitals records are:" >> $pgmout
   cat fnoc >> $pgmout
fi

echo "Leaving sub-shell syndat_getjtbul.sh to recover JTWC Bulletins" \
 >> $pgmout
echo " " >> $pgmout

exit
