#!/bin/ksh

########################################
# Runs SREF Postprocessing up to 87 hours
# change log
# 6/16/2005, Jun Du: change forecast lead time from 
#             63hr to 87hr
# 12/08/2005, Jun Du: WRF_nmm and WRF_em SREF members are added
# 9/20/2009, Julia Zhu   Scripts are modified to be sharable
#                        between EMC and NCO
#         Please note that variable "RUN_ENVIR" is set and used
#         in the development enviroment only.
#
########################################
set -xa
# #### 08/25/1999 ###################
# SET SHELL PROCESSING VARIABLES
# ###################################
export PS4='$SECONDS + ' 
date

export RUN_ENVIR=${RUN_ENVIR:-nco}

###############################
# Specify NET and RUN name
##############################
export NET=sref
export RUN=sref

#####################################################################################
# Run config file to get input parameters
# This config file should define the following variables
# DATA_IN: Location of working directory, default to ${DATAROOT}
# DEV_SMS: If the job is to be running using ecFflow, default to YES
# SENDDBN: Set to NO for developers, default to YES
# COM_IN:  Directory for input files, default to ${COMROOT}/$NET/${envir}
# COM_OUT: Directory for output file, default to ${COMROOT}/$NET/${envir}
# gespath: Directory for the guess or restart files, default to ${GESROOT}/${envir}
#####################################################################################
if [ "$RUN_ENVIR" != nco ]      ### For Developers, "group_name" is passed from the ecFflow script
then
  CONFIG_FILE=${CONFIG_FILE:-/lfs/h2/emc/lam/noscrub/${LOGNAME}/sref${NWROOT}/parm/sref_para_config_cray}
  . $CONFIG_FILE
  export userid=$LOGNAME
  export DATA_IN=${DATA_IN:-/emc/ptmp/$userid}

  export com=${com:-/lfs/h2/emc/ptmp/$LOGNAME${COMROOT}/${NET}/${envir}}
  export COM_IN=${COM_IN:-/lfs/h2/emc/ptmp/$LOGNAME${COMROOT}/${NET}/${envir}}
  export COM_AWIPS=${COM_AWIPS:-/lfs/h2/emc/ptmp/$LOGNAME${COMROOT}/nawips/${envir}}
fi

###############################################################
# This block can be modified for different test environment
###############################################################
if [ $RUN_ENVIR = nco -a $envir != prod ]; then
  export SENDDBN=${SENDDBN:-NO}
# export DBNROOT=${PACKAGEROOTp1}/spa_util/fakedbn
fi

########################################################### 
# obtain unique process id (pid) and make temp directories
# Note: ctl member needs to be run only once and can be used 
# for both NMM and ARW cores!
###########################################################
export pid=$$
export DATA_IN=${DATA_IN:-${DATAROOT}}

export DATA=$DATA_IN/${jobid:?}
# Remove old directory if it exists
rm -rf $DATA
mkdir -p $DATA
cd $DATA

####################################
# File To Log Msgs
####################################
export jlogfile=${jlogfile:-$DATA/jlogfile.${job}.$$}

####################################
# Determine Job Output Name on System
####################################
export pgmout="OUTPUT.$$"
export pgmerr=errfile

export cycle=t${cyc}z

##################################################
# SAVEGES  - Copy Files From TMPDIR to $GESdir
# SENDECF  - Flag Events on ecFflow
# SENDCOM  - Copy Files From TMPDIR to $COMOUT
# SENDDBN  - Issue DBNet Client Calls
# RERUN    - Rerun fcst from beginning (default no)
##################################################
export SENDCOM=${SENDCOM:-YES}
export SENDECF=${SENDECF:-YES}
export SENDDBN=${SENDDBN:-YES}
export VERBOSE=${VERBOSE:-YES}

export HOMEsref=${HOMEsref:-${PACKAGEROOT}/${NET}.${sref_ver}}
export EXECsref=${EXECsref:-$HOMEsref/exec}
export FIXsref=${FIXsref:-$HOMEsref/fix}
export PARMsref={PARMsref:-$HOMEsref/parm}
export USHsref=${USHsref:-$HOMEsref/ush}
export GEMPAKsref=${GEMPAKsref:-$HOMEsref/gempak}

# Run setpdy and initialize PDY variables
setpdy.sh
. ./PDY

###############################
# Specify NET and RUN name
##############################
export NET=sref
export RUN=sref
export fstart=00
export fend=87
export finc=03
export DBN_ALERT_TYPE=SREF_CLUSTER_GEMPAK

#
# Copy special table wmogrib2.tbl, ncepgrib2.tbl
# and vcrdgrib1.tbl into $DATA
#
cp $GEMPAKsref/fix/sref_wmogrib2.tbl wmogrib2.tbl
cp $GEMPAKsref/fix/sref_ncepgrib2.tbl ncepgrib2.tbl
cp $GEMPAKsref/fix/sref_vcrdgrib1.tbl vcrdgrib1.tbl
cp $GEMPAKsref/fix/g2varsncep1.tbl g2varsncep1.tbl
cp $GEMPAKsref/fix/g2varswmo2.tbl g2varswmo2.tbl
cp $GEMPAKsref/fix/g2vcrdncep1.tbl g2vcrdncep1.tbl
cp $GEMPAKsref/fix/g2vcrdwmo2.tbl g2vcrdwmo2.tbl

####################################
# Determine COMIN and COMOUT
####################################
export COM_IN=${COM_IN:-$(compath.py ${NET}/${sref_ver})}
export COM_AWIPS=${COM_AWIPS:-$(compath.py ${NET}/${sref_ver})/${RUN}.${PDY}/gempak}
export COMOUT=${COMOUT:-${COM_AWIPS}/cltr}

if [ ! -f $COMOUT ] ; then
  mkdir -p -m 775 $COMOUT
fi
 
env

########################################################
# Execute the script.
for METHOD in NCEP OU
do
  export METHOD
  export COMIN=$COM_IN/${RUN}.${PDY}/${cyc}/cluster_${METHOD}
  $HOMEsref/scripts/exsref_cluster_gempak.sh
done
########################################################
cat $pgmout

msg="JOB COMPLETED NORMALLY"
postmsg $jlogfile "$msg"

################################
# Remove the Working Directory
################################
cd $DATA_IN
if [ ${KEEPDATA:-NO} != YES ]; then rm -rf $DATA; fi

date