#!/bin/sh
date
export PS4=' $(basename $0).$LINENO: $SECONDS + '
set -xa

envir=${envir:?}                # Typically set to prod
DATAROOT=${DATAROOT:?}          # Typically default to {DATAROOT:-/tmpnwprd1}
COMROOT=${COMROOT:?}            # Typically default to -/com
PACKAGEROOT=${PACKAGEROOT:?} 

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

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

####################################
# Specify NET Name and model
#
# model - model grib field to repack
####################################
export NET=${NET:-ecmwf_mos}
export RUN=${RUN:-ecmwf_mos}
export model=${model:-ecmwf_mos}

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

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

####################################
# Specify ECMWF-MOS version number
####################################
export ECMWFMOS_MODEL_VERSION=${ECMWFMOS_MODEL_VERSION:-${ecmwf_mos_ver}}
export ECMWFMOS_CODE_VERSION=${ECMWFMOS_CODE_VERSION:-${mos_shared_ver}}

####################################
# Specify Execution Areas
####################################
export HOMEmdl=${HOMEmdl:-$PACKAGEROOT/ecmwf_mos.${ECMWFMOS_MODEL_VERSION}}
export FIXmdl=${FIXmdl:-$HOMEmdl/fix}
export PARMmdl=${PARMmdl:-$HOMEmdl/parm}

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

##############################################
# Define COM directories
##############################################
export COMIN=${COMIN:-$(compath.py ${envir}/$NET/${ecmwf_mos_ver})/${RUN}.${PDY}}
export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${ecmwf_mos_ver}/${RUN}.${PDY})}
export COMINhry_mos=${COMINhry_mos:-$(compath.py hry_mos/${hry_mos_ver}/hry_mos.$PDY)}
export pcom=${pcom:-${COMOUT}/wmo}
mkdir -m 775 -p $COMOUT $pcom
env

########################################
# EXECUTE THE SCRIPTS USING MPMD
########################################
rm -f $DATA/mpmdscript
complist="metar tstms"

for comp in $complist
do
   mkdir -p $DATA/$comp
   echo "$HOMEmdl/scripts/execmwf_mos_${comp}_fcst.sh 2>&1 | sed 's/^/fcst_${comp}:/'" >> $DATA/mpmdscript
done

chmod 755 $DATA/mpmdscript
export MP_LABELIO=YES
export MP_STDOUTMODE=unordered
mpiexec --cpu-bind core -n $NTASK -ppn $PTILE cfp $DATA/mpmdscript
export err=$?; err_chk

msg="JOB $job HAS COMPLETED NORMALLY"
date

if [ "$KEEPDATA" != YES ]; then
   cd $DATAROOT
   rm -rf $DATA
fi