#!/bin/ksh
set -xa
export PS4='$SECONDS + '
date

##############################################
# Run config file to get input parameters
##############################################
if [ "$RUN_ENVIR" != nco ]
then
  . ${PARA_CONFIG:-/global/save/${LOGNAME}/para_gfs/pr4devb/para_config}
  export userid=$LOGNAME
fi

##############################################
# Specify NET and RUN Name and model
##############################################
export NET=${NET:-gfs}
export RUN=${RUN:-enkf}

##############################################
# Obtain unique process id (pid) and make temp directory
##############################################
export pid=${pid:-$$}
export outid=${outid:-"LL$job"}
export jobid=${jobid:-"${outid}.o${pid}"}
export DATA=$DATAROOT/${jobid}
mkdir -p $DATA
cd $DATA

##############################################
# Determine Job Output Name on System
##############################################
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile
export cycle=t${cyc}z

##############################################
# SENDECF  - Flag Events on ECF
# SENDCOM  - Copy Files From TMPDIR to $COMOUT
# SENDDBN  - Issue DBNet Client Calls
# VERBOSE  - Specify Verbose Output in exglobal
##############################################
export SENDCOM=${SENDCOM:-NO}
export SENDDBN=${SENDDBN:-YES}
export SENDECF=${SENDECF:-YES}
export SAVEGES=${SAVEGES:-NO}
export RERUN=${RERUN:-NO}
export VERBOSE=${VERBOSE:-YES}

##############################################
# Define the Log File directory
##############################################
export jlogfile=${jlogfile:-$COMROOT/logs/jlogfiles/jlogfile.${job}.${pid}}

##############################################
# Specify Execution Areas
##############################################
export HOMEgsm=${HOMEgsm:-$NWROOT/global_shared.$global_shared_ver}
export EXECgsm=${EXECgsm:-$HOMEgsm/exec}
export FIXgsm=${FIXgsm:-$HOMEgsm/fix/fix_am}
export USHgsm=${USHgsm:-$HOMEgsm/ush}

export HOMEgsi=${HOMEgsi:-$NWROOT/global_shared.$global_shared_ver}
export EXECgsi=${EXECgsi:-$HOMEgsi/exec}
export FIXgsi=${FIXgsi:-$HOMEgsi/fix}
export SCRgsi=${SCRgsi:-$HOMEgsi/scripts}

export HOMEgdas=${HOMEgdas:-$NWROOT/gdas.$gdas_ver}
export PARMgdas=${PARMgdas:-$HOMEgdas/parm}

##############################################
# Run setup to initialize working directory and utility scripts
##############################################
ERRSCRIPT=${ERRSCRIPT:-err_chk}
LOGSCRIPT=${LOGSCRIPT:-startmsg}
export FILESTYLE=${FILESTYLE:-'L'}

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

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

export CDATE=${CDATE:-${PDY}${cyc}}
export GDATE=`$NDATE -06 $CDATE`
export PDYges=`echo $GDATE | cut -c1-8`
export CYCges=`echo $GDATE | cut -c9-10`

##############################################
# Define COM directories
##############################################
export COM_IN=${COM_IN:-$COMROOT/${NET}/${envir}}
export COM_OUT=${COM_OUT:-$COMROOT/${NET}/${envir}}
export COMIN=$COM_IN/${RUN}.${PDY}/$cyc
export COMOUT=$COM_OUT/${RUN}.${PDY}/$cyc
export COMINGDAS=${COMINGDAS:-$COM_IN/gdas.${PDY}}
export COMINGES=$COM_IN/${RUN}.${PDYges}/$CYCges
mkdir -m 775 -p $COMOUT

##############################################
# Define GES directories
##############################################
export gespath=${gespath:-$GESROOT/${envir}}
export GESOUT=$gespath/gdas.$PDY
mkdir -m 775 -p $GESOUT

##############################################
# Execute parm file
##############################################
. ${PARMENKF_SELECT_OBS:-$PARMgdas/gdas_enkf_select_obs.parm}

##############################################
# WCOSS environment settings
##############################################
export machine=${machine:-WCOSS}
export APRUN=${APRUN:-'mpirun.lsf'}

env

##############################################
# Execute the script
${ANALYSISSH:-$SCRgsi/exglobal_analysis.sh.ecf}
##############################################

##############################################
# Final processing
##############################################
if [ $SENDDBN = YES ] ; then
   $DBNROOT/bin/dbn_alert MODEL ENKF1_MSC_gsistat $job $COMOUT/gsistat_${CDATE}_ensmean
   $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $SFCANL
fi

cat $pgmout

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

##############################################
# Remove the Temporary working directory
##############################################
cd $DATAROOT
if [ ${KEEPDATA:-NO} != YES ] ; then rm -rf $DATA ; fi

date
