#!/bin/sh 
date
export PS4=' $SECONDS + '
set -x

####################################
# obtain unique process id (pid) and make temp directory
####################################
export DATA=${DATA:-${DATAROOT:?}/${jobid}}
mkdir -p $DATA
cd $DATA
export cycle=t${cyc}z

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

export ECMWF_FILE_EXT=${ECMWF_FILE_EXT:-1}
####################################
# Specify NET and RUN Name and model
####################################
export NET=${NET:-ens_tracker}
export RUN=${RUN:-gefs}

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

####################################
# SENDECF  - Flag Events on ecFLOW
# SENDCOM  - Copy Files From TMPDIR to $COMOUT
# SENDDBN  - Issue DBNet Client Calls
####################################
export SENDECF=${SENDECF:-NO}
export SENDCOM=${SENDCOM:-YES}
export SENDDBN=${SENDDBN:-NO}

####################################
# Specify Execution Areas
####################################
export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEHOME}}
export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec}
export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix}
export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush}

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

##############################################
# Define COM directories
##############################################
export JYYYY=`echo ${PDY} | cut -c1-4`
export COMINgfs=${COMINgfs:-$(compath.py $envir/com/gfs/${gfs_ver})/gfs.${PDY}}
export COMINsyn=${COMINsyn:-$(compath.py $envir/com/gfs/${gfs_ver})/syndat}
export COMINgefs=${COMINgefs:-$(compath.py $envir/com/gefs/${gefs_ver})/gefs.${PDY}/${cyc}}

export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${ens_tracker_ver})/${RUN}.${PDY}/${cyc}/tctrack}
export COMOUThur=${COMOUThur:-$(compath.py -o ${NET}/${ens_tracker_ver})/global}
export COMOUTatcf=${COMOUTatcf:-$(compath.py -o ${NET}/${ens_tracker_ver})/atcf}
mkdir -m 775 -p $COMOUT $COMOUThur $COMOUTatcf

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

env

#############################################################
# Execute the script
export cmodel=ens
export loopnum=1
export ymdh=${PDY}${cyc}

export ensdira=${COMINgefs}/atmos/pgrb2ap5
export ensdirb=${COMINgefs}/atmos/pgrb2bp5

mkdir ${DATA}/${cmodel}
cd ${DATA}/${cmodel}

pertstring="c00 p01 p02 p03 p04 p05 p06 p07 p08 p09 p10
                p11 p12 p13 p14 p15 p16 p17 p18 p19 p20
                p21 p22 p23 p24 p25 p26 p27 p28 p29 p30"

#-----------input data checking -----------------
${USHens_tracker}/data_check.sh
# exit code 6 = missing data of opportunity
if [ $? -eq 6 ]; then exit; fi
#------------------------------------------------

>trkr.cmdfile
for pert in ${pertstring}; do
  pertdir=${DATA}/${cmodel}/${pert}
  mkdir -p $pertdir
  outfile=${pertdir}/trkr.${cmodel}.${pert}.${ymdh}.out
  echo "${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${ymdh} ${pert} ${pertdir} 2>&1 >${outfile}" >>trkr.cmdfile
done

chmod u+x trkr.cmdfile
export MP_PGMMODEL=mpmd
export MP_CMDFILE=${DATA}/${cmodel}/trkr.cmdfile

mpiexec --cpu-bind core --configfile ${MP_CMDFILE}
export err=$?; err_chk

#if [ ${SENDCOM} = 'NO' ]; then
#  for pert in ${pertstring}; do
#    pertdir=${DATA}/${cmodel}/${pert}
#    cp ${pertdir}/trak.a${pert}.atcfunix.${PDY}${cyc} ${COMOUT}/a${pert}.t${cyc}z.cyclone.trackatcfunix
#  done
#fi

cd $DATA
#rm -rf ${DATA}/${cmodel}

${USHens_tracker}/ens_trak_ave.sh
export err=$?; err_chk

#if [ ${SENDCOM} = 'NO' ]; then
#  cp ${DATA}/aemn.trkprob.* ${COMOUT}/
#  cp ${DATA}/trak.aemn.atcfunix.* ${COMOUT}/aemn.t${cyc}z.cyclone.trackatcfunix
#  cp ${DATA}/trak.aemn.mode.* ${COMOUT}/aemn.t${cyc}z.cyclone.trackmode
#  cp ${DATA}/trak.aemn.spread.* ${COMOUT}/aemn.t${cyc}z.cyclone.trackspread
#fi

${USHens_tracker}/atcf_2_cxml.sh ${cmodel} ${ymdh} ${COMOUT} ${DATA}
export err=$?; err_chk

#############################################################

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

##############################
# Remove the Temporary working directory
##############################
if [[ $KEEPDATA != "YES" ]]; then
  rm -rf $DATA
fi


date