########################### EXRTGSST.SH.SMS ###############################
set +xa
echo "---------------------------------------------------------------"
echo "JRTGSST - RTGSSTHR and ETA processing"
echo "---------------------------------------------------------------"
echo "History: Tuesday, May 04, 1993 - Implement SSTOI Analysis"
echo "Revised: Tuesday, August 29, 1995 - convert from CSS to FTA"
echo "Revised: Tue October 3, 1995 - added operational ETA SST script"
echo "Revised: Mon, 22 September, 1996 - Add OI SST processing."
echo "Revised: Wed, 26 October, 1996 - Add Satellite SST to OI processing."
echo "Revised: Tue, 18 March, 1997 - Add rmcomdir step"
echo "Revised: Tue, 17 June, 1997 - Add step to submit mkfossst.sh."
echo "Revised: 02/08/2000 - Initial implementation on the IBM SP "
echo "                      ETA SST script now in separate job"
echo "Revised: 06/12/2000 - Modified to become RTGSSTHR analysis "
echo "         17 Jan 2001 - placed into parallel production."
echo "Revised: Mar 2012 - Chmod 640 ship files."
echo "                    Remove chmod 775 $COMOUT/* to protect restricted files."
echo "---------------------------------------------------------------"
set -xa

###########################################################
# Processing/Flow of script
# 1) Copy this job's input files to the working directory
# 2) Run steps required for data preprocessing and  OI sst analysis
# 3) Save output files to $COMOUT
# 4) Interpolate 0.5-degree grid to 2.5 nh and sh degree grids
# 5) Remove files located in this job's working directory
###########################################################

#############################################################
# Ensure that this job is pointed to the production temporary
# working directory, which is where all of this job's input 
# and output files will be saved during execution
#############################################################
cd $DATA

msg="HAS BEGUN on `hostname`"
postmsg "$jlogfile" "$msg"

set -x

# MPI environment variables.  Do not change
export MP_SHARED_MEMORY=yes
                                                                        
# MPI debugging variables.  Don't always need.
export MP_LABELIO=yes
export MP_COREFILE_FORMAT=lite

#############################################################
# cp RTG_SST non-satellite input files from prior 6 days to 
# working directory checking yesterdays directory first, 
# check others if necessary
#############################################################

for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 
do
  for CTYPE in ships dbuoy fbuoy seaice.grb satamsre
  do
     for SDIR in $COMIN $COMINm1 $COMINm2 $COMINm3 $COMINm4 $COMINm5 $COMINm6
     do
        if [ -s $SDIR/rtgssthr_$CTYPE.$CDATE ]
        then
           cp $SDIR/rtgssthr_$CTYPE.$CDATE .
           break
        fi
     done
  done
done

for satid in mta n19
do
  for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1
  do
    for retr in phys navy merg 
    do
      for CTYPE in dsat$satid nsat$satid 
      do
        for SDIR in $COMIN $COMINm1 $COMINm2 $COMINm3 $COMINm4 $COMINm5 $COMINm6
        do
           if [ -s $SDIR/rtgssthr_${CTYPE}_$retr.$CDATE ]
           then
              cp $SDIR/rtgssthr_${CTYPE}_$retr.$CDATE .
              break
           fi
        done
      done
    done
  done
done

#
# Dump insitu files that were not available in previous runs
#
export CHKPRT=true
export DUMP=/nwprod/ush/dumpjb
export FORM=system
export LOUD=off
export DUEX=/nwprod/exec
export DFIX=/nwprod/fix
export MPMD=/nwprod/util/ush/mpmd.sh

export XLFRTEOPTS="unit_vars=yes:buffering=disable_all"

#  For each day, check for file for each type (ships, dbuoy, fbuoy)
# dump and process if missing

####DUMPTIME=2221

for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
do
  for CTYPE in ships dbuoy fbuoy
  do
    #  if file does not exist or has size of zero, get bufr'd data.
    #  always get bufr'd data for yesterday to pick up late obs.
    if  [ ! -s rtgssthr_$CTYPE.$CDATE ]
    then

      if [ $CTYPE = fbuoy ] 
      then
        $DUMP $CDATE\04.35 17.99999 mbuoy
        dumpstat1=$?
        $DUMP $CDATE\04.35 17.99999 lcman
        dumpstat2=$?
        if [ $dumpstat1 -eq 0 -a $dumpstat2 -eq 0 ] ; then
#  merge moored buoys and CMANs into a "fixed buoy" file
          export pgm=bufr_combfr
          . prep_step 
          export XLFUNIT_50="fbuoy.system"
          echo "mbuoy.system \nlcman.system"|/nwprod/exec/bufr_combfr
          errcomb=$?
          if [ $errcomb -ne 0 ] ; then
            cp mbuoy.system fbuoy.system
          fi
        elif [ $dumpstat1 -eq 0 ] ; then
          cp mbuoy.system fbuoy.system
        elif [ $dumpstat2 -eq 0 ] ; then
          cp lcman.system fbuoy.system
        fi
        dumpstat=$(($dumpstat1*$dumpstat2))
      elif [ $CTYPE = ships ]
      then
        $DUMP $CDATE\04.35 17.99999 shpall
        dumpstat=$?
        if [ $dumpstat -eq 0 -o $dumpstat -eq 11 ] ; then
          mv shpall.system ships.system
          dumpstat=0
        else
          $DUMP $CDATE\04.35 17.99999 ships
          dumpstat=$?
        fi
      else
        $DUMP $CDATE\04.35 17.99999 $CTYPE
        dumpstat=$?
      fi

      if [ $dumpstat -ne 0 ]
      then
         msg="data dump failed: $dumpstat"
         postmsg "$jlogfile" "$msg"
      else
        export pgm=rtgssthr_shp
        . prep_step
      
#  run rtgssthr_shp on dumped bufr data
        echo $CDATE $CTYPE > rtgsstshp.input
        echo $CHKPRT     >> rtgsstshp.input
      
        export XLFUNIT_10="$CTYPE.system"
        export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
        CDATEm1=$($USHutil/finddate.sh $CDATE d-1)
        export XLFUNIT_41="rtgssthr_$CTYPE.$CDATEm1"
        export XLFUNIT_51="rtgssthr_$CTYPE.$CDATE"
      
        startmsg
        $EXECrtgsst/rtgssthr_shp < rtgsstshp.input >> $pgmout 2>errfile
        export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?
        err_chk
      fi
    fi
  done
done

#  save insitu files for tomorrows run
if test "$SENDCOM" = 'YES'
then
   for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
   do
      for CTYPE in ships dbuoy fbuoy
      do
         cp rtgssthr_$CTYPE.$CDATE $COMOUT/rtgssthr_$CTYPE.$CDATE
         if [ $CTYPE = ships ] ; then
            chgrp rstprod $COMOUT/rtgssthr_$CTYPE.$CDATE
            chmod 640 $COMOUT/rtgssthr_$CTYPE.$CDATE
         fi
      done
   done
fi

for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
do
# For each day, check for file
#  if file does not exist or has size of zero, get bufr'd data.
#  always get bufr'd data for yesterday to pick up late obs.
  if  [ ! -s rtgssthr_satamsre.$CDATE ]
  then
    $DUMP $CDATE\04.35 17.99999 amsrem 
    dumpstat=$?

    if [ $dumpstat -ne 0 ]
    then
      msg="data dump failed: $dumpstat"
      postmsg "$jlogfile" "$msg"
    else
      export pgm=rtgssthr_sat_amsre
      . prep_step

      echo $CDATE amsr-e > rtgsstamsre.input
      echo $CHKPRT     >> rtgsstamsre.input

      export XLFUNIT_21="amsrem.system"
      export XLFUNIT_23="$FIXrtgsst/rtgssthr_aoi.61.90.clim.halfdeg"
      export XLFUNIT_24="$FIXrtgsst/rtgssthr_stdev2d"
      export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
      CDATEm1=$($USHutil/finddate.sh $CDATE d-1)
      export XLFUNIT_41="rtgssthr_satamsre.$CDATEm1"
      export XLFUNIT_51="rtgssthr_satamsre.$CDATE"

      startmsg
      $EXECrtgsst/rtgssthr_sat_amsre < rtgsstamsre.input >>$pgmout 2>&1
      export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?
      err_chk
    fi
  fi
done


##  For each day, check for file for satellite data
# dump and process if missing
#-----------------------------------------------------------------
export DUMP=/nwprod/ush/dumpjb
export FORM=system
export LOUD=off
export CHKPRT=true
export TANK=$TANKDIR_IN
#-----------------------------------------------------------------
#CCM commenting out the following and using environmental variable
# TANKDIR_IN from J-job.  Can uncomment if desired
# for testing.
#-----------------------------------------------------------------
#if [[ $envir = test ]] ; then
#  export TANK=/dcom/us007003/test
#fi
#if [[ $envir = para ]] ; then
#  export TANK=/dcom/us007003/para
#fi

for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
do
  for retr in phys navy ; do
    if [ $retr = phys ] ; then
      CTYPE=017
      SPLITPROG=rtgssthr_satsplit
    elif [ $retr = navy ] ; then
      CTYPE=012
      SPLITPROG=bufr_satsplit
    else
      echo "Illegal retrieval type $retr . "
      continue
    fi
    for satid in mta n19 
    do

# For each day, check for file
#  if file does not exist or has size of zero, get bufr'd data.
#  always get bufr'd data for yesterday to pick up late obs.
      if  [ ! -s rtgssthr_dsat${satid}_$retr.$CDATE -o ! -s rtgssthr_nsat${satid}_$retr.$CDATE ]
      then
        $DUMP $CDATE\04.35 17.99999 012 $CTYPE
        dumpstat=$?

        if [ $dumpstat -ne 0 ]
        then
          msg="data dump failed: $dumpstat"
          postmsg "$jlogfile" "$msg"
        else

          pgm=$SPLITPROG
          export pgm
          . prep_step
  
          export XLFUNIT_11=012.system
          export XLFUNIT_51=avhrrn19
          export XLFUNIT_52=avhrrn17
          export XLFUNIT_53=avhrrn18
          export XLFUNIT_54=avhrrmta
          $EXECrtgsst/$SPLITPROG
          errsplit=$?
          export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?
          err_chk
          if [ $errsplit -eq 0 ]; then
            echo " --------------------------------------------- "
            echo " ********** COMPLETED PROGRAM $SPLITPROG **********"
            echo " --------------------------------------------- "
            msg="$pgm has split phys ret dump into N-19, -17, -18 & METOP-A files"
            postmsg "$jlogfile" "$msg"
            for procsatid in mta n19 ; do
              export pgm=rtgssthr_sat
              . prep_step

              echo $CDATE phyret > rtgsstsat.input
              echo $CHKPRT     >> rtgsstsat.input

              export XLFUNIT_21="avhrr$procsatid"
              export XLFUNIT_23="$FIXrtgsst/rtgssthr_aoi.61.90.clim.halfdeg"
              export XLFUNIT_24="$FIXrtgsst/rtgssthr_stdev2d"
              export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
              CDATEm1=$($USHutil/finddate.sh $CDATE d-1)
              export XLFUNIT_41="rtgssthr_dsat${procsatid}_$retr.$CDATEm1"
              export XLFUNIT_42="rtgssthr_nsat${procsatid}_$retr.$CDATEm1"
              export XLFUNIT_51="rtgssthr_dsat${procsatid}_$retr.$CDATE"
              export XLFUNIT_52="rtgssthr_nsat${procsatid}_$retr.$CDATE"

              startmsg
              $EXECrtgsst/rtgssthr_sat < rtgsstsat.input >>$pgmout 2>&1
              export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?
              err_chk
            done
          else
            echo "*******************************************************"
            echo "********  ERROR PROGRAM $SPLITPROG RETURN CODE $err ********"
            echo "*******************************************************"
            msg="ERROR PROGRAM $SPLITPROG RETURN CODE $err"
            postmsg "$jlogfile" "$msg"
          fi
        fi
        break
      fi
    done
  done

  for satid in mta n19 
  do
    if [ ! -s rtgssthr_dsat${satid}_merg.$CDATE -o ! -s rtgssthr_nsat${satid}_merg.$CDATE ] ; then
      export pgm=rtgssthr_satmerge
      . prep_step

      echo "4320 2160 0.08333333333333333 0.08333333333333333 (format free)" > satmerge.input

      export XLFUNIT_11="rtgssthr_dsat${satid}_navy.$CDATE"
      export XLFUNIT_12="rtgssthr_nsat${satid}_navy.$CDATE"
      export XLFUNIT_21="rtgssthr_dsat${satid}_phys.$CDATE"
      export XLFUNIT_22="rtgssthr_nsat${satid}_phys.$CDATE"
      export XLFUNIT_31="$FIXrtgsst/rtgssthr_dist2land.bin"
      export XLFUNIT_51="rtgssthr_dsat${satid}_merg.$CDATE"
      export XLFUNIT_52="rtgssthr_nsat${satid}_merg.$CDATE"
  
      $EXECrtgsst/rtgssthr_satmerge < satmerge.input >>$pgmout 2>&1
      export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?
      err_chk
    fi

  done
done

#  save satellite archives for tomorrows run
if test "$SENDCOM" = 'YES'
then
  for satid in mta n19
  do
    for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
    do
      for retr in phys navy merg
      do

        cp rtgssthr_dsat${satid}_$retr.$CDATE $COMOUT/rtgssthr_dsat${satid}_$retr.$CDATE
        cp rtgssthr_nsat${satid}_$retr.$CDATE $COMOUT/rtgssthr_nsat${satid}_$retr.$CDATE
      done
    done
  done
  for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
  do
    cp rtgssthr_satamsre.$CDATE $COMOUT/rtgssthr_satamsre.$CDATE
  done
fi

##  quality control ship and buoy data
export pgm=rtgssthr_insdt
. prep_step

export XLFUNIT_11="$FIXrtgsst/rtgssthr_aoi.61.90.clim.halfdeg"
export XLFUNIT_12="$FIXrtgsst/rtgssthr_stdev2d"
export XLFUNIT_21="rtgssthr_ships.$PDYm6"
export XLFUNIT_22="rtgssthr_ships.$PDYm5"
export XLFUNIT_23="rtgssthr_ships.$PDYm4"
export XLFUNIT_24="rtgssthr_ships.$PDYm3"
export XLFUNIT_25="rtgssthr_ships.$PDYm2"
export XLFUNIT_26="rtgssthr_ships.$PDYm1"
export XLFUNIT_27="rtgssthr_ships.$PDY"
export XLFUNIT_31="rtgssthr_dbuoy.$PDYm6"
export XLFUNIT_32="rtgssthr_dbuoy.$PDYm5"
export XLFUNIT_33="rtgssthr_dbuoy.$PDYm4"
export XLFUNIT_34="rtgssthr_dbuoy.$PDYm3"
export XLFUNIT_35="rtgssthr_dbuoy.$PDYm2"
export XLFUNIT_36="rtgssthr_dbuoy.$PDYm1"
export XLFUNIT_37="rtgssthr_dbuoy.$PDY"
export XLFUNIT_41="rtgssthr_fbuoy.$PDYm6"
export XLFUNIT_42="rtgssthr_fbuoy.$PDYm5"
export XLFUNIT_43="rtgssthr_fbuoy.$PDYm4"
export XLFUNIT_44="rtgssthr_fbuoy.$PDYm3"
export XLFUNIT_45="rtgssthr_fbuoy.$PDYm2"
export XLFUNIT_46="rtgssthr_fbuoy.$PDYm1"
export XLFUNIT_47="rtgssthr_fbuoy.$PDY"
export XLFUNIT_51="buoydat"
export XLFUNIT_52="shipdat"

iyrst=`echo "$PDYm6"|cut -c1-4`
imst=`echo "$PDYm6"|cut -c5-6`
idst=`echo "$PDYm6"|cut -c7-8`
cat <<end_ft05 > sstinsdt.input
$iyrst  $imst  $idst  7   iyrst,imst,idst,ndays  (format free)
$CHKPRT
end_ft05

startmsg
$EXECrtgsst/rtgssthr_insdt < sstinsdt.input >> $pgmout 2>errfile
export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

#  form 1-deg buoy, ship and ice super obs for oi analysis
# get ice files that were not available in previous runs from /dcom
#  copy all to /com for tomorrows run if SENDCOM
for CDATE in $PDYm6 $PDYm5 $PDYm4 $PDYm3 $PDYm2 $PDYm1 $PDY
do
  if  [ ! -s rtgssthr_seaice.grb.$CDATE ]
  then
    if [ -r ${COM_SEAICE}.${CDATE}/seaice.t00z.5min.grb ]
    then
      cp ${COM_SEAICE}.${CDATE}/seaice.t00z.5min.grb rtgssthr_seaice.grb.$CDATE
      [ $SENDCOM = 'YES' ] && cp rtgssthr_seaice.grb.$CDATE $COMOUT/rtgssthr_seaice.grb.$CDATE
    fi
  else
    [ $SENDCOM = 'YES' ] && cp rtgssthr_seaice.grb.$CDATE $COMOUT/rtgssthr_seaice.grb.$CDATE
  fi
done

export pgm=rtgssthr_superins
. prep_step

export XLFUNIT_11="buoydat"
export XLFUNIT_12="shipdat"
export XLFUNIT_27="$FIXrtgsst/seaice_gland5min"
##export XLFUNIT_28="$FIXrtgsst/rtgssthr_ls_nas.dat"
export XLFUNIT_31="rtgssthr_seaice.grb.$PDYm6"
export XLFUNIT_32="rtgssthr_seaice.grb.$PDYm5"
export XLFUNIT_33="rtgssthr_seaice.grb.$PDYm4"
export XLFUNIT_34="rtgssthr_seaice.grb.$PDYm3"
export XLFUNIT_35="rtgssthr_seaice.grb.$PDYm2"
export XLFUNIT_36="rtgssthr_seaice.grb.$PDYm1"
export XLFUNIT_37="rtgssthr_seaice.grb.$PDY"
# SALT.LEVITUS.TOPLAYER must be FORTRAN 77 blocked, IEEE floating-point
export XLFUNIT_41="$FIXrtgsst/rtgssthr_SALT.LEVITUS.TOPLAYER"
export XLFUNIT_51="buoy.grid"
export XLFUNIT_52="ship.grid"
export XLFUNIT_53="ice.grid"
export XLFUNIT_61="buoy.realtime"
export XLFUNIT_62="ship.realtime"
export XLFUNIT_63="ice.realtime"

startmsg
$EXECrtgsst/rtgssthr_superins >> $pgmout 2>errfile
export err=$?; err_chk
$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

##  form 1-deg day and night satellite super obs for oi analysis
export pgm=rtgssthr_supersat
. prep_step

for satid in mta n19 ; do
  export XLFUNIT_21="buoy.grid"
  export XLFUNIT_31="rtgssthr_dsat${satid}_merg.$PDYm6"
  export XLFUNIT_32="rtgssthr_dsat${satid}_merg.$PDYm5"
  export XLFUNIT_33="rtgssthr_dsat${satid}_merg.$PDYm4"
  export XLFUNIT_34="rtgssthr_dsat${satid}_merg.$PDYm3"
  export XLFUNIT_35="rtgssthr_dsat${satid}_merg.$PDYm2"
  export XLFUNIT_36="rtgssthr_dsat${satid}_merg.$PDYm1"
  export XLFUNIT_37="rtgssthr_dsat${satid}_merg.$PDY"
  export XLFUNIT_41="rtgssthr_nsat${satid}_merg.$PDYm6"
  export XLFUNIT_42="rtgssthr_nsat${satid}_merg.$PDYm5"
  export XLFUNIT_43="rtgssthr_nsat${satid}_merg.$PDYm4"
  export XLFUNIT_44="rtgssthr_nsat${satid}_merg.$PDYm3"
  export XLFUNIT_45="rtgssthr_nsat${satid}_merg.$PDYm2"
  export XLFUNIT_46="rtgssthr_nsat${satid}_merg.$PDYm1"
  export XLFUNIT_47="rtgssthr_nsat${satid}_merg.$PDY"
  export XLFUNIT_51="dsat$satid.grid"
  export XLFUNIT_52="nsat$satid.grid"

  startmsg
  $EXECrtgsst/rtgssthr_supersat >> $pgmout 2>errfile
  export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

done

export pgm=rtgssthr_supersat_amsre
. prep_step

export XLFUNIT_21="buoy.grid"
export XLFUNIT_31="rtgssthr_satamsre.$PDYm6"
export XLFUNIT_32="rtgssthr_satamsre.$PDYm5"
export XLFUNIT_33="rtgssthr_satamsre.$PDYm4"
export XLFUNIT_34="rtgssthr_satamsre.$PDYm3"
export XLFUNIT_35="rtgssthr_satamsre.$PDYm2"
export XLFUNIT_36="rtgssthr_satamsre.$PDYm1"
export XLFUNIT_37="rtgssthr_satamsre.$PDY"
export XLFUNIT_51="satamsre.grid"

startmsg
$EXECrtgsst/rtgssthr_supersat_amsre >> $pgmout 2>&1
export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

##  create guess from previous analysis and climatology
PREVSST=$COMINm1/rtgssthr_grb_0.083
if [ -s $PREVSST ]
then
  cp $PREVSST prevanal.grb
  err=$?
else
  echo "Yesterday's analysis not available for first guess.  Check past days."
  err=1
  for SDIR in $COMINm2 $COMINm3 $COMINm4 $COMINm5 $COMINm6 $COMINm7
  do
    PREVSST=$SDIR/rtgssthr_grb_0.083
    if [ -s $PREVSST ]
    then
      cp $PREVSST prevanal.grb
      err=$?
      warnSUBJ=JRTGSSTHR
      if [[ $envir = para ]] ; then
        warnSUBJ=JRTGSSTHR_PARA
      fi
      warnBODY="Today is ${PDY}.  Guess field in $envir from ${PREVSST}."
      export warnSUBJ warnBODY
      break
    fi
  done
fi

if [ $err -ne 0 ]
then
  echo #####################################################
  echo #####################################################
  echo   !!!!     NO PREVSST FILE   !!!!
  echo #####################################################
  echo #####################################################
  warnSUBJ=JRTGSSTHR
  if [[ $envir = para ]] ; then
    warnSUBJ=JRTGSSTHR_PARA
  fi
  upenvir=$(echo $envir | tr [a-z] [A-Z])
  warnBODY="Todays date: ${PDY}.  No GUESS.  $upenvir RTG_SST FAILED"
  export warnSUBJ warnBODY
  err_exit
  exit
fi

export pgm=rtgssthr_adjguess
. prep_step

export XLFUNIT_11="$FIXrtgsst/rtgssthr_aoi.61.90.clim.twelfthdeg"
export XLFUNIT_12="prevanal.grb"
export XLFUNIT_13="buoy.realtime"
export XLFUNIT_51="guess"
export XLFUNIT_52="climatology"

startmsg
$EXECrtgsst/rtgssthr_adjguess >> $pgmout 2>errfile
export err=$?;err_chk

$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

##  calculate day and night satellite biases
##  remove day and night satellite biases

for satid in mta n19; do

  export pgm=rtgssthr_biascor
  . prep_step

  export XLFUNIT_11="ship.grid"
  export XLFUNIT_12="buoy.grid"
  export XLFUNIT_13="ice.grid"
  export XLFUNIT_14="dsat$satid.grid"
  export XLFUNIT_15="nsat$satid.grid"
  export XLFUNIT_21="rtgssthr_dsat${satid}_merg.$PDY"
  export XLFUNIT_22="rtgssthr_nsat${satid}_merg.$PDY"
  export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.dat"
  export XLFUNIT_41="guess"
####export XLFUNIT_42="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
  export XLFUNIT_51="dsat${satid}c.realtime"
  export XLFUNIT_52="nsat${satid}c.realtime"
  export XLFUNIT_71="one.degree.diag"
  export XLFUNIT_74="four.degree.diag"
  export XLFUNIT_77="biascor.$satid.4deg"
  export XLFUNIT_87="weaver"

  startmsg
  $EXECrtgsst/rtgssthr_biascor >> $pgmout 2>&1
  export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

done

export pgm=rtgssthr_biascor_amsre
. prep_step

export XLFUNIT_11="ship.grid"
export XLFUNIT_12="buoy.grid"
export XLFUNIT_13="ice.grid"
export XLFUNIT_14="satamsre.grid"
export XLFUNIT_21="rtgssthr_satamsre.$PDY"
export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.dat"
export XLFUNIT_41="guess"
export XLFUNIT_51="satamsrec.realtime"
export XLFUNIT_71="one.degree.diag"
export XLFUNIT_74="four.degree.diag"
export XLFUNIT_77="biascor.amsre.4deg"
export XLFUNIT_87="weaver"

startmsg
$EXECrtgsst/rtgssthr_biascor_amsre >> $pgmout 2>&1
export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

## OI SST analysis
# read super observations and previous analysis (first guess)
# compute a new analysis using optimum interpolation (OI)
# and output the new SST OI analysis on a 1 degree grid

export pgm=rtgssthr_rthranl4
. prep_step

export XLFUNIT_11="buoy.realtime"
export XLFUNIT_12="ship.realtime"
export XLFUNIT_13="ice.realtime"
export XLFUNIT_14="nsatmtac.realtime"
export XLFUNIT_15="dsatmtac.realtime"
export XLFUNIT_16="nsatn19c.realtime"
export XLFUNIT_17="dsatn19c.realtime"
export XLFUNIT_18="satamsrec.realtime"
export XLFUNIT_28="guess"
export XLFUNIT_29="climatology"
export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
export XLFUNIT_32="$FIXrtgsst/rtgssthr_ls_nas.halfdeg.dat"
export XLFUNIT_41="$FIXrtgsst/rtgssthr_stat0.083"
export XLFUNIT_42="$FIXrtgsst/rtgssthr_IncrAmpGLB0.083"
export XLFUNIT_43="$FIXrtgsst/rtgssthr_SSTgrdntScl_0.083.gr"
export XLFUNIT_62="rtgsstgrb0.083_awips"
export XLFUNIT_63="rtgsstgrb0.083"
export XLFUNIT_64="anomlygrb0.083"
export XLFUNIT_65="rtgsstgrb0.5_awips"
export XLFUNIT_66="rtgsstgrb0.5"
export XLFUNIT_70="gridded.datacounts.realtime"
export XLFUNIT_71="buoy.realtime.used"
export XLFUNIT_72="ship.realtime.used"
export XLFUNIT_73="ice.realtime.used"
export XLFUNIT_74="nsatmtac.realtime.used"
export XLFUNIT_75="dsatmtac.realtime.used"
export XLFUNIT_76="nsatn19c.realtime.used"
export XLFUNIT_77="dsatn19c.realtime.used"
export XLFUNIT_78="satamsrec.realtime.used"
export XLFUNIT_87="weaver"

cat <<end_ft05 > rthranl.input
 &CONTR2 LBUOY=T,LSHIP=T,LDSATMTA=T,LNSATMTA=T,LDSATN19=T,LNSATN19=T,
         LICE=T,LBUOYCHK=T,LSHIPCHK=T,LDSATMTACHK=T,LNSATMTACHK=T,
         LDSATN19CHK=T,LNSATN19CHK=T,LSATAMSRE=T,LSATAMSRECHK=T,
         LICECHK=T /
end_ft05

startmsg
poe $EXECrtgsst/rtgssthr_rthranl4 < rthranl.input >> $pgmout 2>errfile
export err=$?; err_chk
$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

$EXECutil/grbindex rtgsstgrb0.083_awips rtgsstgrb0.083_awips.index 
$EXECutil/grbindex rtgsstgrb0.083 rtgsstgrb0.083.index 
$EXECutil/grbindex anomlygrb0.083 anomlygrb0.083.index 
$EXECutil/grbindex rtgsstgrb0.5_awips rtgsstgrb0.5_awips.index 
$EXECutil/grbindex rtgsstgrb0.5   rtgsstgrb0.5.index 


#####################################################################
#
#     PROCESS GLOBAL SEA SURFACE TEMPERATURE (SST) FOR AWIPS
#
#####################################################################


$EXECutil/cnvgrib -g12 -p40 rtgsstgrb0.083_awips  rtgsst_grb_0.083_awips.grib2
$EXECutil/wgrib2 rtgsst_grb_0.083_awips.grib2 -s > rtgsst_grb_0.083_awips.grib2.idx

export parmcard=/nw${envir}/util/parm/grib2_awips_rtgssthr

export XLFRTEOPTS="unit_vars=yes"     # Allow overriding default names.

export XLFUNIT_11="rtgsst_grb_0.083_awips.grib2"
export XLFUNIT_31=" "
export XLFUNIT_51="grib2.awips_rtgssthr_grb_0.083"

$EXECutil/tocgrib2 < $parmcard

##############################
# Convert to grib2 format
##############################
$EXECutil/cnvgrib -g12 -p40 rtgsstgrb0.5 rtgssthr_grb_0.5.grib2
$EXECutil/cnvgrib -g12 -p40 rtgsstgrb0.083 rtgssthr_grb_0.083.grib2
$EXECutil/wgrib2 rtgssthr_grb_0.5.grib2 -s >rtgssthr_grb_0.5.grib2.idx
$EXECutil/wgrib2 rtgssthr_grb_0.083.grib2 -s > rtgssthr_grb_0.083.grib2.idx

if test "$SENDCOM" = 'YES'
then
  cp rtgsstgrb0.083_awips       $COMOUT/rtgssthr_grb_0.083_awips
  cp rtgsstgrb0.083_awips.index $COMOUT/rtgssthr_grb_0.083_awips.index
  cp rtgsstgrb0.083             $COMOUT/rtgssthr_grb_0.083
  cp rtgsstgrb0.083.index       $COMOUT/rtgssthr_grb_0.083.index
  cp anomlygrb0.083             $COMOUT/anomaly_grb_0.083
  cp anomlygrb0.083.index       $COMOUT/anomaly_grb_0.083.index
  cp rtgsstgrb0.5_awips         $COMOUT/rtgssthr_grb_0.5_awips
  cp rtgsstgrb0.5_awips.index   $COMOUT/rtgssthr_grb_0.5_awips.index
  cp rtgsstgrb0.5               $COMOUT/rtgssthr_grb_0.5
  cp rtgsstgrb0.5.index         $COMOUT/rtgssthr_grb_0.5.index
  for satid in mta n19 ; do
    cp nsat${satid}c.realtime.used     $COMOUT/rtgssthr_nsat${satid}_used.$PDY
    cp dsat${satid}c.realtime.used     $COMOUT/rtgssthr_dsat${satid}_used.$PDY
    cp biascor.$satid.4deg             $COMOUT/rtgssthr_biascor_${satid}_4deg.$PDY
  done
  cp biascor.amsre.4deg                $COMOUT/rtgssthr_biascor_amsre_4deg.$PDY
  cp satamsrec.realtime.used     $COMOUT/rtgssthr_satamsre_used.$PDY
  cp gridded.datacounts.realtime $COMOUT/rtgssthr_gridded_datacounts.$PDY
  cp buoy.realtime.used         $COMOUT/rtgssthr_buoys_used.$PDY
  cp ship.realtime.used         $COMOUT/rtgssthr_ships_used.$PDY
  chgrp rstprod $COMOUT/rtgssthr_ships_used.$PDY 
  chmod 640 $COMOUT/rtgssthr_ships_used.$PDY 
  cp ice.realtime.used          $COMOUT/rtgssthr_seaice_used.$PDY
  cp grib2.awips_rtgssthr_grb_0.083 $COMOUT/grib2.awips_rtgssthr_grb_0.083
  cp rtgssthr_grb_0.5.grib2     $COMOUT/rtgssthr_grb_0.5.grib2
  cp rtgssthr_grb_0.083.grib2   $COMOUT/rtgssthr_grb_0.083.grib2
  cp rtgssthr_grb_0.5.grib2.idx  $COMOUT/rtgssthr_grb_0.5.grib2.idx
  cp rtgssthr_grb_0.083.grib2.idx $COMOUT/rtgssthr_grb_0.083.grib2.idx
  cp rtgsst_grb_0.083_awips.grib2  $COMOUT/rtgssthr_grb_0.083_awips.grib2
  cp rtgsst_grb_0.083_awips.grib2.idx $COMOUT/rtgssthr_grb_0.083_awips.grib2.idx
  
  if test "$SENDDBN" = 'YES'
  then
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib $job $COMOUT/rtgssthr_grb_0.5
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_gribi $job $COMOUT/rtgssthr_grb_0.5.index
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib $job $COMOUT/rtgssthr_grb_0.083
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_gribi $job $COMOUT/rtgssthr_grb_0.083.index
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib $job $COMOUT/rtgssthr_grb_0.083_awips
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_gribi $job $COMOUT/rtgssthr_grb_0.083_awips.index
     $DBNROOT/bin/dbn_alert NTC_LOW $NET $job $COMOUT/grib2.awips_rtgssthr_grb_0.083

     if [ $SENDDBN_GB2 = YES ]
     then

     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2 $job $COMOUT/rtgssthr_grb_0.5.grib2
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2 $job $COMOUT/rtgssthr_grb_0.083.grib2
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2 $job $COMOUT/rtgssthr_grb_0.083_awips.grib2
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2_WIDX $job $COMOUT/rtgssthr_grb_0.5.grib2.idx
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2_WIDX $job $COMOUT/rtgssthr_grb_0.083.grib2.idx
     $DBNROOT/bin/dbn_alert MODEL RTG_SST_grib_GB2_WIDX $job $COMOUT/rtgssthr_grb_0.083_awips.grib2.idx

     fi

  else
     echo "SENDDBN=$SENDDBN, files not posted to db_net."
  fi

fi

##if [ -s $COMIN/rtgssthr_buoys_used.$PDY ]
##then
##   cp $COMIN/rtgssthr_buoys_used.$PDY buoy.realtime.used
##fi

set -x
msg='ENDED NORMALLY.'
postmsg "$jlogfile" "$msg"


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