#!/bin/sh
###############################################################################
####  UNIX Script Documentation Block                                         #
#                                                                             #
# Script name:         exofs_atl_assimilation.sh.sms                          #
# Script description:                                                         #
#                                                                             #
# Author:        Dan Iredell       Org: NP23         Date: 2005-06-14         #
#                                                                             #
# Abstract: This script generates the SST analysis and an updated reastart    #
#           for the Ocean Forecast Model                                      #
#                                                                             #
# Sub-scripts called:                                                         #
#    ofs_ssh_assim.sh : create ssh analyses                                   #
#    ofs_ctd_assim.sh : create ctd analyses                                   #
#    ofs_sst_assim.sh : create sst analyses                                   #
#    ofs_merge.sh : merge together multiple sst analyses                      #
#                                                                             #
# Script history log:                                                         #
# 2005-07-27  Dan Iredell                                                     #
#                                                                             #
###############################################################################
set -x
# --------------------------------------------------------------------------- #
# 0.  Preparations
# 0.a Basic modes of operation


export PS4='$SECONDS + '

# send extra output for monitoring purposes.

export monitor=1

cd $DATA

msg="${RUN}_${modID} model data assimilation has begun on `hostname`"
postmsg "$jlogfile" "$msg"

# 0.a obtain the startdate and enddate
export cdate=$PDY
export srtdate=$PDYm1
export enddate=`sh $utilscript/finddate.sh $srtdate d+1`
 
# 0.b  model day

export t0=`$utilscript/date_normal2hycom.sh $srtdate$cyc`
export t1=`$utilscript/date_normal2hycom.sh $enddate$cyc`

# 0.b definition of lon-lat window containing model domain (SET IN JOBS SCRIPT)

# 0.c set restart file identifier and verification
export restart_previous=$COMINm1

if [ -s $restart_previous/${RUN}_${modID}.t00z.next_restart.a -a $restart_previous/${RUN}_${modID}.t00z.next_restart.b ]
then
      msg1="Restart File available."
      postmsg "$jlogfile" "$msg1" 
else
      msg1="Missing Restart File"
      msg2="ABNORMAL EXIT ASSIMILATION: FATAL ERROR--NO RESTART FILE"
      postmsg "$jlogfile" "$msg1" "$msg2"
      err=911;
      export err;err_chk
fi

#1.b Set environment variables for decoders

export depth=0
export TANK=${TANK:-${DCOMROOT}/us007003}
export DUMPMB=${DUMPMB:-/nwprod/ush/dumpmb}
export dumpmb=$DUMPMB


###################################################
# 2. temperature and salinity profile assimilation
###################################################
if [ $runctd -eq 1 ] ; then

#2.a Set identifier for file labels
   export field=ctd

   test -d $DATA/ctd || mkdir -p $DATA/ctd

#2.b Set names of tanks containing CTDs

   export data_archive='BATHY DBUOY TESAC TRKOB'

#2.c Perform ctd assimilation

   export offset_in_hours_to_collect_obs=48
   export srtdate=$PDY
   $USHofs/ofs_ctd_assim.sh $PDY

#2.d  Save files to day directory
   if [ $SENDCOM = YES ]
   then
#   save  ctd layer analysis for each active layer
      for layer_analysis in `ls ${field}/ctd.*.bin`
      do
        lname=`basename ${layer_analysis}`
	cp ${layer_analysis} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
      done

#    save ctd observation records
      for layer_data in `ls ${field}/*spread*.txt`
	  do
            lname=`basename ${layer_data}`
	    cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
      done

      for layer_analysis in `ls ${field}/ctd.*.inova.txt`
      do
         lname=`basename ${layer_analysis}`
         cp ${layer_analysis} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
      done


#  save additional information while monitoring
      if [ $monitor -eq 1 ]
      then

#   save ctd layer analysis for each active layer
         lctds=`ls ${field}/ctds_combined.*`
         lname=`basename ${lctds}`
         cp ${lctds} $COMOUT/${RUN}_${modID}.${cycle}.${lname}.txt
	 
         for layer_analysis in `ls ${field}/CTD.*.inova.txt`
         do
            lname=`basename ${layer_analysis}`
	    cp ${layer_analysis} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
         done

         for layer_data in `ls ${field}/*.box.txt`
         do
            lname=`basename ${layer_data}`
            cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
         done

         for layer_data in `ls ${field}/${field}.profiles.*.txt`
         do
            lname=`basename ${layer_data}`
            cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
         done
            
         for layer_data in `ls ${field}/${field}.layers.*.txt`
         do
            lname=`basename ${layer_data}`
            cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
         done

         for layer_data in `ls ${field}/${field}.monitor.*.txt`
         do
            lname=`basename ${layer_data}`
	    cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
	 done

         for layer_data in `ls ${field}/num_ctd.profiles.*.txt`
         do
            lname=`basename ${layer_data}`
	    cp ${layer_data} $COMOUT/${RUN}_${modID}.${cycle}.${lname}
	 done

      fi

# NOTE: spread.bin should be saved here !!

   fi

fi


postmsg "$jlogfile" "$msg"

msg='THE OFS_ASSIMILATION_CTD JOB HAS ENDED NORMALLY.'
postmsg "$jlogfile" "$msg"

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

