#!/bin/sh
#  Script Name:  nos_ofs_archive.prod
#  Purpose:                                                                   #
#  This script is to make copy model files to corresonding directories after  #
#  successfully completing nowcast and forecast simulations by running:       #
#  exnos_ofs_nowcast_forecast.sh.sms                                          #
#                                                                             #
#  Child scripts :                                                            #
#                                                                             #
#  The utililty script used:                                                  #
#                                                                             #
# Remarks :                                                                   #
# - For non-fatal errors output is written to the *.log file.                 #
#                                                                             #
# Language:  C shell script
# Nowcast  
# Input:
#     nos.${RUN}.river.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.obc.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.met.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.init.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.hflux.nowcast.$yyyy$mm$dd.t${HH}z.nc
#     ${RUN}_roms_nowcast.in
#     nos.${RUN}.roms.tides.nc
# Output:
#     nos.${RUN}.stations.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.fields.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.fields.forecast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.rst.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.roms.nowcast.$yyyy$mm$dd.t${cyc}z.log
# Forecast  
# Input:
#     nos.${RUN}.river.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.obc.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.met.forecast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.rst.nowcast.$yyyy$mm$dd.t${cyc}z.nc
#     ${RUN}_roms_forecast.in
#     nos.${RUN}.roms.tides.nc
# Output:
#     nos.${RUN}.stations.forecast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.fields.forecast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.rst.forecast.$yyyy$mm$dd.t${cyc}z.nc
#     nos.${RUN}.roms.forecast.$yyyy$mm$dd.t${cyc}z.log
#
# Technical Contact:    Aijun Zhang         Org:  NOS/CO-OPS                  #
#                       Phone: 301-7132890 ext. 127                           #
#                       E-Mail: aijun.zhang@noaa.gov                          #
#                                                                             #
#                                                                             #
###############################################################################
# --------------------------------------------------------------------------- #
# 0.  Preparations
# 0.a Basic modes of operation

cd $DATA

seton='-xa'
setoff='-xa'
set $seton

set $setoff
echo ' '
echo '  		    ****************************************'
echo '  		    *** NOS OFS  ARCHIVE SCRIPT  ***        '
echo '  		    ****************************************'
echo ' '
echo "Starting exnos_ofs_archive.sms.prod at : `date`"
set $seton
RUNTYPE=$1
export MP_PGMMODEL=mpmd
export MP_CMDFILE=cmdfile
###############################################################################
if [ $RUNTYPE == "NOWCAST" -o $RUNTYPE == "nowcast" ]
then

# 1  Save nowcast output 
# 1.1 Nowcast log 
    if [ -f ${ROMS_OUT_NOWCAST} ]
    then
      cp -p ${ROMS_OUT_NOWCAST} $COMOUT/.  
      if [ $SENDDBN = YES ]; then
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job $COMOUT/${ROMS_OUT_NOWCAST}
      fi
    fi

# 1.2 HIS nowcast 
    if [ -f $DATA/$HIS_OUT_ROMS_NOWCAST ]
    then
      cp -p $DATA/$HIS_OUT_ROMS_NOWCAST $COMOUT/$HIS_OUT_ROMS_NOWCAST 
      echo "   $HIS_OUT_ROMS_NOWCAST saved "
      if [ $SENDDBN = YES ]; then
         $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_NETCDF $job $COMOUT/${HIS_OUT_ROMS_NOWCAST}
      fi
    fi

# 1.3 STA nowcast
    if [ -f $DATA/$STA_OUT_ROMS_NOWCAST ]
    then
      cp -p $DATA/$STA_OUT_ROMS_NOWCAST $COMOUT/$STA_OUT_ROMS_NOWCAST
      echo "   $STA_OUT_ROMS_NOWCAST saved "
      if [ $SENDDBN = YES ]; then
         $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_NETCDF $job $COMOUT/${STA_OUT_ROMS_NOWCAST}
      fi
    fi
   
# 1.4 RST nowcast 
#  this file is saved in exexnos_ofs_nowcast_forecast.sms.sh only when nowcast
#  run is successful.
 #   if [ -f $DATA/$RST_OUT_ROMS_NOWCAST ]
 #   then
 #     cp -p $DATA/$RST_OUT_ROMS_NOWCAST $COMOUT/$RST_OUT_ROMS_NOWCAST
 #     echo "   $RST_OUT_ROMS_NOWCAST saved "
 #   fi
# 1.5 ROMS runtime control file for nowcast
    if [ -f ${RUN}_roms_nowcast.in ]
    then
      cp -p $DATA/${RUN}_roms_nowcast.in $COMOUT/${ROMS_IN_NOWCAST}
      echo "ARCHIVE_NOWCAST DONE 100" >> $CORMSLOG
      if [ $SENDDBN = YES ]; then
         $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job $COMOUT/${ROMS_IN_NOWCAST}
      fi
    fi
fi

# --------------------------------------------------------------------------- #
# 2  Save forecast output 
if [ $RUNTYPE == "FORECAST" -o $RUNTYPE == "forecast" ]
then
  export pgm=${ROMS_OUT_FORECAST}"_copy"
  . ./prep_step

# 2.1 Forecast log 
    if [ -f ${ROMS_OUT_FORECAST} ]
    then
      cp ${ROMS_OUT_FORECAST} $COMOUT/${ROMS_OUT_FORECAST}  
      export err=$?; ./err_chk
      echo "  ${ROMS_OUT_FORECAST}  saved "
      if [ $SENDDBN = YES ]; then
         $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job $COMOUT/${ROMS_OUT_FORECAST}
      fi
    fi

  export pgm=$DATA/$HIS_OUT_ROMS_FORECAST"_copy"
  . ./prep_step

# 2.2 HIS forecast 
    if [ -f $DATA/$HIS_OUT_ROMS_FORECAST ]
    then
      cp $DATA/$HIS_OUT_ROMS_FORECAST $COMOUT/$HIS_OUT_ROMS_FORECAST 
      export err=$?; ./err_chk
      echo "   $HIS_OUT_ROMS_FORECAST saved "
      if [ $SENDDBN = YES ]; then
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_NETCDF $job $COMOUT/${HIS_OUT_ROMS_FORECAST}
      fi
    fi

  export pgm=$DATA/$STA_OUT_ROMS_FORECAST"_copy"
  . ./prep_step

# 2.3 STA forecast
    if [ -f $DATA/$STA_OUT_ROMS_FORECAST ]
    then
      cp $DATA/$STA_OUT_ROMS_FORECAST $COMOUT/$STA_OUT_ROMS_FORECAST
      export err=$?; ./err_chk
      echo "   $STA_OUT_ROMS_FORECAST saved "
      if [ $SENDDBN = YES ]; then
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_NETCDF $job $COMOUT/${STA_OUT_ROMS_FORECAST}
      fi
    fi
   
# 2.4 Restart file from forecast run is not needed
#    if [ -f $DATA/$RST_OUT_ROMS_FORECAST ]
#    then
#      cp $DATA/$RST_OUT_ROMS_FORECAST $COMOUT/$RST_OUT_ROMS_FORECAST
#      echo "   $RST_OUT_ROMS_FORECAST saved "
#    fi

# 2.5 ROMS runtime control file for forecast
    if [ -f ${RUN}_roms_forecast.in ]
    then
      cp -p $DATA/${RUN}_roms_forecast.in $COMOUT/$ROMS_IN_FORECAST
      echo "ARCHIVE_FORECAST DONE 100" >> $CORMSLOG
      if [ $SENDDBN = YES ]; then
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job  $COMOUT/${ROMS_IN_FORECAST}
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job  $CORMSLOG
      fi
    fi
# 2.6. Save status file
    if [ -s $COMOUT/${RUN}.status ]; then
      if [ $SENDDBN = YES ]; then
        $DBNROOT/bin/dbn_alert MODEL NOS_OFS_FCST_TEXT $job $COMOUT/${RUN}.status
      fi
    fi
fi  

# --------------------------------------------------------------------------- #
# 4.  Ending output

  set $setoff
  echo ' '
  echo "Ending exnos_ofs_archive.sms.prod at : `date`"
  echo ' '
  echo '                     *** End of NOS OFS ARCHIVE SCRIPT ***'
  echo ' '
