#!/bin/sh
@@{PARTITION}
@@{CONSTRAINTS}
#SBATCH --nodes=@@{NNODES}
#SBATCH --ntasks-per-node=@@{PPN}
#SBATCH --time=@@{WALLTIME}
#SBATCH -J JOB_@@{JOBID}_@@{INSTANCEID}
#SBATCH -o slurm_@@{RUNNAME}_@@{INSTANCEID}.stdout
#SBATCH -e slurm_@@{RUNNAME}_@@{INSTANCEID}.stderr
@@{REMOTEBATCHACCOUNT}

@@{ENVIRONMENT}

# RemoteBatchSLURM:makeMPINoForkTemplate
# SubmissionScripts/Distributor/Batch/SLURM/mpinofork

trap cleanup HUP INT QUIT ABRT TERM

cleanup()
{
   echo "Abnormal termination by signal"
   if [ ! -s @@{TS_FINISH} ] ; then
      date +"%s" > @@{TS_FINISH}
   fi
   exit 1
}

export PATH=${SLURM_SUBMIT_DIR}:${PATH}
# Change to directory where job was submitted.
cd ${SLURM_SUBMIT_DIR}

@@{QUOTA}

date +"%s" > @@{TS_START}

@@{PREMANAGERCOMMANDS}
@@{MANAGERCOMMAND} @@{EXECUTABLE} @@{ARGUMENTS} < @@{STDIN} > @@{RUNNAME}_@@{INSTANCEID}.stdout 2> @@{RUNNAME}_@@{INSTANCEID}.stderr
@@{POSTMANAGERCOMMANDS}

date +"%s" > @@{TS_FINISH}

startTime=`cat @@{TS_START}`
finishTime=`cat @@{TS_FINISH}`
let wallTime=finishTime-startTime
cnt=0
while [ "${cnt}" != "@@{NPROCESSORS}" ] ; do
   cat >> @@{TIME_RESULTS} <<EOF
real ${wallTime}.00
user ${wallTime}.00
sys 0.00
EOF
   cnt=`expr ${cnt} + 1`
done
