########################### EXRTGSSTVAL.SH.SMS ###############################
set +xa
echo "---------------------------------------------------------------"
echo "JRTGSSTVAL - RTGSSTHR and ETA processing"
echo "---------------------------------------------------------------"
echo "History: Thursday, September 13, 2001 - Create separate script forvalidation of RTG_SST analysis"
echo "Revised: Mar 2012 - 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 validation of RTG_SST analysis
# 3) Save output files to $COMOUT
# 4) 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 $COMIN/rtgssthr_grb_0.083         rtgsstgrb0.083
cp $COMIN/rtgssthr_grb_0.083.index   rtgsstgrb0.083.index
for satid in mta n19 ; do
  cp $COMIN/rtgssthr_nsat${satid}_used.$PDY nsat${satid}c.realtime.used
  cp $COMIN/rtgssthr_dsat${satid}_used.$PDY dsat${satid}c.realtime.used
done
cp $COMIN/rtgssthr_satamsre_used.$PDY satamsrec.realtime.used
cp $COMIN/rtgssthr_buoys_used.$PDY   buoy.realtime.used
cp $COMIN/rtgssthr_ships_used.$PDY   ship.realtime.used
cp $COMIN/rtgssthr_seaice_used.$PDY  ice.realtime.used

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

echo $PDY > buoy_eval

sufstring="05 16 27 38 49"

for suf in $sufstring ; do

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

  if [ $err -ne 0 ]
  then
    echo #####################################################
    echo #####################################################
    echo   !!!!     NO PREVSST FILE   !!!!
    echo #####################################################
    echo #####################################################
    warnSUBJ=JRTGSSTHRVAL
    warnBODY="Todays date: ${PDY}. No GUESS. TEST RTG_SST VALIDATION 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_verf${suf}.grb"
  export XLFUNIT_13="buoy.realtime.used"
  export XLFUNIT_51="guess_verf${suf}"
  export XLFUNIT_52="climatology"

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

##export pgm=rtgssthr_verfbuoy
##. prep_step
##
##export XLFUNIT_11="buoy.grid"
##export XLFUNIT_51="buoykeep${suf}.grid"
##export XLFUNIT_52="buoydrop${suf}.grid"
##
##startmsg
##
##suffix=$suf
##dropstring="SUPEROBS\nDROP "
##while [ ${#suffix} -gt 0 ] ; do
##  sufdigit=$(echo $suffix | cut -c1)
##  dropstring="${dropstring}////$sufdigit "
##  suffix=$(echo $suffix | cut -c2-)
##done
##
##echo "$dropstring" | $EXECrtgsst/rtgssthr_verfbuoy >> $pgmout 2>errfile
##export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

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

##export pgm=rtgssthr_biascor
##. prep_step
##
##export XLFUNIT_11="ship.grid"
##export XLFUNIT_12="buoykeep${suf}.grid"
##export XLFUNIT_13="ice.grid"
##export XLFUNIT_14="dsatmta.grid"
##export XLFUNIT_15="nsatmta.grid"
##export XLFUNIT_16="dsatn19.grid"
##export XLFUNIT_17="nsatn19.grid"
##export XLFUNIT_21="rtgssthr_dsatmta.$PDY"
##export XLFUNIT_22="rtgssthr_nsatmta.$PDY"
##export XLFUNIT_23="rtgssthr_dsatn19.$PDY"
##export XLFUNIT_24="rtgssthr_nsatn19.$PDY"
##export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.dat"
##export XLFUNIT_41="guess_verf${suf}"
##export XLFUNIT_42="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
##export XLFUNIT_51="dsatmtac${suf}.realtime"
##export XLFUNIT_52="nsatmtac${suf}.realtime"
##export XLFUNIT_53="dsatn19c${suf}.realtime"
##export XLFUNIT_54="nsatn19c${suf}.realtime"
##export XLFUNIT_71="one.degree.diag"
##export XLFUNIT_74="four.degree.diag"
##export XLFUNIT_87="weaver"
##
##startmsg
##$EXECrtgsst/rtgssthr_biascor >> $pgmout 2>errfile
##export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

  export pgm=rtgssthr_verfbuoy
  . prep_step

  export XLFUNIT_11="buoy.realtime.used"
  export XLFUNIT_51="buoykeep${suf}.realtime"
  export XLFUNIT_52="buoydrop${suf}.realtime"

  startmsg

  suffix=$suf
  dropstring="REALTIME\nDROP "
  while [ ${#suffix} -gt 0 ] ; do
    sufdigit=$(echo $suffix | cut -c1)
    dropstring="${dropstring}////$sufdigit "
    suffix=$(echo $suffix | cut -c2-)
  done

  echo "$dropstring" | $EXECrtgsst/rtgssthr_verfbuoy >> $pgmout 2>errfile
  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="buoykeep${suf}.realtime"
  export XLFUNIT_12="ship.realtime.used"
  export XLFUNIT_13="ice.realtime.used"
  export XLFUNIT_14="nsatmtac.realtime.used"
  export XLFUNIT_15="dsatmtac.realtime.used"
  export XLFUNIT_16="nsatn19c.realtime.used"
  export XLFUNIT_17="dsatn19c.realtime.used"
  export XLFUNIT_18="satamsrec.realtime.used"
  export XLFUNIT_28="guess_verf${suf}"
  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_oi.statDaily0.5"
  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_verf${suf}_awips"
  export XLFUNIT_63="rtgsstgrb0.083_verf${suf}"
  export XLFUNIT_64="anomlygrb0.083_verf${suf}"
  export XLFUNIT_65="rtgsstgrb0.5_verf${suf}_awips"
  export XLFUNIT_66="rtgsstgrb0.5_verf${suf}"
  export XLFUNIT_70="gridded.datacounts.realtime"
  export XLFUNIT_71="buoy.realtime.used_verf"
  export XLFUNIT_72="ship.realtime.used_verf"
  export XLFUNIT_73="ice.realtime.used_verf"
  export XLFUNIT_74="nsatmtac.realtime.used_verf"
  export XLFUNIT_75="dsatmtac.realtime.used_verf"
  export XLFUNIT_76="nsatn19c.realtime.used_verf"
  export XLFUNIT_77="dsatn19c.realtime.used_verf"
  export XLFUNIT_78="satamsrec.realtime.used_verf"
  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=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

  $EXECutil/grbindex rtgsstgrb0.083_verf${suf} rtgsstgrb0.083_verf${suf}.index 
  $EXECutil/grbindex anomlygrb0.083_verf${suf} anomlygrb0.083_verf${suf}.index 
  $EXECutil/grbindex rtgsstgrb0.5_verf${suf} rtgsstgrb0.5_verf${suf}.index 

  export pgm=rtgssthr_evalregn
  . prep_step

  export XLFUNIT_11="buoydrop${suf}.realtime"
##export XLFUNIT_12="nsatn19c.realtime.used"
##export XLFUNIT_13="dsatn19c.realtime.used"
##export XLFUNIT_14="buoy.realtime.used"
##export XLFUNIT_15="ship.realtime.used"
##export XLFUNIT_16="ice.realtime.used"
  export XLFUNIT_26="rtgsstgrb0.083_verf${suf}"
  export XLFUNIT_27="rtgsstgrb0.083_verf${suf}.index"
  export XLFUNIT_28="rtgsstgrb0.083"
  export XLFUNIT_29="rtgsstgrb0.083.index"
  export XLFUNIT_31="$FIXrtgsst/rtgssthr_ls_nas.twelfthdeg.dat"
  export XLFUNIT_51="region_eval${suf}"
  export XLFUNIT_52="buoy_eval${suf}"

  startmsg
  $EXECrtgsst/rtgssthr_evalregn < $PARMrtgsst/rtgssthr_buoyboxes.namelist >> $pgmout 2>errfile
  export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

  cat buoy_eval buoy_eval${suf} >> buoy_eval_temp
  mv buoy_eval_temp buoy_eval

  if test "$SENDCOM" = 'YES'
  then
    cp rtgsstgrb0.083_verf${suf} $COMOUT/rtgssthr_grb_verf${suf}_0.083
    cp rtgsstgrb0.083_verf${suf}.index \
       $COMOUT/rtgssthr_grb_verf${suf}_0.083.index
##  cp anomlygrb0.5_verf${suf} $COMOUT/anomaly_grb_verf${suf}_0.5
##  cp anomlygrb0.5_verf${suf}.index \
##     $COMOUT/anomaly_grb_verf${suf}_0.5.index
##  cp rtgsstgrb1.0_verf${suf} $COMOUT/rtgssthr_verf${suf}_grb
##  cp rtgsstgrb1.0_verf${suf}.index \
##                             $COMOUT/rtgssthr_verf${suf}_grb.index
    cp buoydrop${suf}.realtime $COMOUT/rtgssthr_buoydrop${suf}.$PDY
    cp buoykeep${suf}.realtime $COMOUT/rtgssthr_buoykeep${suf}.$PDY
    cp region_eval${suf} $COMOUT/rtgssthr_region_eval${suf}.$PDY
    cp buoy_eval${suf}   $COMOUT/rtgssthr_buoy_eval${suf}.$PDY
  
  fi

done

export pgm=rtgssthr_evalavg
. prep_step

export XLFUNIT_11="buoy.realtime.used"
export XLFUNIT_12="ship.realtime.used"
export XLFUNIT_13="ice.realtime.used"
export XLFUNIT_14="nsatmtac.realtime.used"
export XLFUNIT_15="dsatmtac.realtime.used"
export XLFUNIT_16="nsatn19c.realtime.used"
export XLFUNIT_17="dsatn19c.realtime.used"
export XLFUNIT_18="satamsrec.realtime.used"

iunit=31
for suf in $sufstring ; do
  eval export XLFUNIT_$iunit="region_eval${suf}"
  iunit=$(($iunit+1))
done  
export XLFUNIT_$iunit
unset XLFUNIT_$iunit 

export XLFUNIT_51="region_wgtavg_eval"
export XLFUNIT_52="region_unwgtavg_eval"
export XLFUNIT_53="region_datacounts"

startmsg
$EXECrtgsst/rtgssthr_evalavg < $PARMrtgsst/rtgssthr_buoyboxes.namelist >> $pgmout 2>errfile
export err=$?;$USHrtgsst/rtgssthr_errwarn.sh;export err=$?;err_chk

if test "$SENDCOM" = 'YES'
then
  cp buoy_eval            $COMOUT/rtgssthr_buoy_eval.$PDY
  cp region_wgtavg_eval   $COMOUT/rtgssthr_region_wgtavg_eval.$PDY
  cp region_unwgtavg_eval $COMOUT/rtgssthr_region_unwgtavg_eval.$PDY
  cp region_datacounts    $COMOUT/rtgssthr_region_datacounts.$PDY

fi

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

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