#####################################################################
echo "----------------------------------------------------------"
echo "exairnow_dump.sh.sms - Daily AIRNOW data dump and PREPBUFR"
echo "processing"
echo "----------------------------------------------------------"
echo "History: Apr 26 2004 - Original script."
#####################################################################

set -ax

# Make sure we are in the $DATA directory
cd $DATA

##msg="Daily AIRNOW data dump and PREPBUFR processing has begun on `hostname`"
##postmsg "$jlogfile" "$msg"
 
cat break > $pgmout

########################################################
#  First, dump the AIRNOW data
########################################################

if [ -z "$pdy" ]; then
   tmhr=`echo $tmmark|cut -c3-5`
   export dumptime=`/nwprod/util/exec/ndate -$tmhr $PDY$cyc`
else
   export dumptime=`echo $pdy`$cyc
fi

set +x
echo
echo "CENTER DATA DUMP DATE-TIME IS $dumptime"
echo
set -x
 
export COMSP=$COMOUT/${model}.${cycle}.
 
err1=0

msg="START THE DAILY AIRNOW DUMP CENTERED ON $dumptime"
postmsg "$jlogfile" "$msg"

#----------------------------------------------------------------
cat<<\EOF>thread_1; chmod +x thread_1
set -uax

cd $DATA

{ echo
set +x
echo "********************************************************************"
echo Script thread_1
echo Executing on node  `hostname`
echo Starting time: `date`
echo "********************************************************************"
echo
set -x

export STATUS=NO
export DUMP_NUMBER=1

#============================================================================
# Dump # 1 : AIRNOW -- TOTAL NUMBER OF SUBTYPES = 1
#            time window radius is -11.00 to +12.99 hours
#============================================================================

DTIM_latest_airnow=+12.99

$ushscript_dump/bufr_dump_obs.sh $dumptime 11.00 1 airnow
error1=$?

echo "$error1" > $DATA/error1

set +x
echo "********************************************************************"
echo Script thread_1
echo Finished executing on node  `hostname`
echo Ending time  : `date`
echo "********************************************************************"
set -x
} > $DATA/1.out 2>&1
EOF

#----------------------------------------------------------------

thread_1

cat $DATA/1.out
err1=`cat $DATA/error1`

#####msg=`grep "  HAS  " $DATA/job1/dumpjb.out`
#####$DATA/postmsg "$jlogfile" "$msg"

export STATUS=YES
export DUMP_NUMBER=2
$ushscript_dump/bufr_dump_obs.sh $dumptime 0.50 1 null

#================================================================
#================================================================

if [ "$err1" -gt '5' ]; then
   for n in $err1
   do
      if [ "$n" -gt '5' ]; then
         if [ "$n" -ne '11' -a "$n" -ne '22' ]; then

## fatal error in dumping of BUFR obs. files

            set +x
echo
echo " ###################################################### "
echo " --> > 22 RETURN CODE FROM DATA DUMP, $err1 "
echo " --> @@ F A T A L   E R R O R @@   --  ABNORMAL EXIT    "
echo " ###################################################### "
echo
            set -x
            err_exit
            exit 9
         fi
      fi
   done

## a status code of 11 or 22 from dumping of BUFR obs. files
## is non-fatal but still worth noting

   set +x
   echo
   echo " ###################################################### "
   echo " --> > 5 RETURN CODE FROM DATA DUMP, $err1 "
   echo " --> NOT ALL DATA DUMP FILES ARE COMPLETE - CONTINUE    "
   echo " ###################################################### "
   echo
   set -x
fi

if [ $err1 -gt 0 ]; then

   msg="Since AIRNOW dump file is EMPTY, NO PREPBUFR processing is performed"
   postmsg "$jlogfile" "$msg"
   touch ${COMSP}prepbufr.$tmmark

else

##########################################################################
#  Next, put the AIRNOW data into a mini-PREPBUFR file (all by itself)
##########################################################################

   EXECPREP=${EXECPREP:-/nw${envir}/exec}
   FIXPREP=${FIXPREP:-/nw${envir}/fix}

   PANX=${PANX:-$EXECPREP/prepobs_prepanow}
   PANT=${PANT:-$FIXPREP/prepobs_anow.bufrtable}

   msg="CENTER TIME FOR PREPBUFR PROCESSING IS $dumptime"
   postmsg "$jlogfile" "$msg"

   pgm=`basename  $PANX`
   if [ -s prep_step ]; then
      . prep_step
   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

   cp ${COMSP}airnow.$tmmark.bufr_d airnow.dump

   echo "$dumptime"      > cdate10.dat
   export XLFUNIT_21=airnow.dump
   export XLFUNIT_25=$PANT
   export XLFUNIT_30=cdate10.dat
   export XLFUNIT_51=prepbufr
   timex $PANX > prepanow.out 2> errfile
   err=$?
   ###cat errfile
   cat errfile >> prepanow.out
   set +u
   [ -n "$pgmout" ]  &&  cat prepanow.out >> $pgmout
   set -u
   set +x
   echo
   echo 'The foreground exit status for PREPOBS_PREPANOW is ' $err
   echo
   set -x
   if [ -s err_chk ]; then
      err_chk
   else
      if test "$err" -gt '0'
      then
#########kill -9 ${qid}
         exit 555
      fi
   fi

   if [ "$err" -gt '0' ]; then
      exit 9
   else
# save final form of prepbufr file in COMSP
      cp prepbufr ${COMSP}prepbufr.$tmmark
   fi

fi


# GOOD RUN
# this is done in J-job
###set +x
###echo " "
###echo " ****** AIRNOW DUMP AND PREPBUFR PROCESSING COMPLETED NORMALLY"
###echo " ****** AIRNOW DUMP AND PREPBUFR PROCESSING COMPLETED NORMALLY"
###echo " ****** AIRNOW DUMP AND PREPBUFR PROCESSING COMPLETED NORMALLY"
###echo " ****** AIRNOW DUMP AND PREPBUFR PROCESSING COMPLETED NORMALLY"
###echo " "
###set -x


# save standard output
###cat break $pgmout break > allout
cat break $pgmout break >> ../allout
###cat allout
### # rm allout

###sleep 10

###msg='ENDED NORMALLY.'
###postmsg "$jlogfile" "$msg"

################## END OF SCRIPT #######################
