#!/bin/sh
#-------------------------------------------------#
# This script gets the sub surface data (bathy, tesac 
# and trackob) from the bufr tank using the modsbufr
# dump script and writes it out for analysis part
# of HYCOM
# 
#
# Usage: sh dcodmobs.sh yyyymmdd yyyymmdd
# Example: sh dcodmobs.sh 20050310 20050410
#  exported in
#    level
#    dumpmb
#    latobsmin latobsmax lonobsmin lonobsmax
#    data_archive
#---------------------------------------------------#
 
set -x

echo "*** Started script $0"

if test $# -eq 2
then
# first two args are the start and end dates
   startdate=$1
   enddate=$2
else
   echo 'number of arguments is NOT 2'
   exit -1
fi


NDATE=${NDATE:-$utilexec/ndate}


##############################################################################
##   Decodes data from Jeff Whiting Archive  ###
## data types : 1) bathy tesac trkob dbuoy 2)sstns sstnvh ssmipn
##              3) ersal 4) nersal ngfoal ntpxal njsnal
##              5) metar ships mbuoy lcman cstgd tideg
##############################################################################
export XLFRTEOPTS="unit_vars=yes"
# To check what is in the tank checkout /nwprod/fix/bufrtab.031
enddatep1=$enddate$cyc
enddatep1=`$NDATE +24 $enddatep1 | cut -c1-8`

for p in $data_archive
do
   ${dumpmb} $startdate $enddate $p 

   ADATE=$startdate
   # for each day incrementing
   while [[ $ADATE < $enddatep1 ]]
   do
     newp=$(echo $p | tr [A-Z] [a-z])
     cp $newp.$ADATE prepbufr.in 
     
     export pgm=ofs_dcodmobs
     . prep_step

     export XLFUNIT_20="prepbufr.in" 
 
     startmsg    
     $EXECofs/ofs_dcodmobs $level $latobsmin $latobsmax $lonobsmin $lonobsmax >> $pgmout 2> errfile
     export err=$?; err_chk

     if [ -f fort.89 ] ; then
       cat fort.89 >> ctd.$enddate.$p.txt
     fi
     rm prepbufr.in

     ADATE=$ADATE$cyc
     ADATE=`$NDATE +24 $ADATE | cut -c1-8`
   done
done

echo "*** Finished script $0"
