#! /bin/csh -f

set account_name = "NPSCA07935242"
if (-e ~/.ccsm_proj) then
   set account_name = `head -1 ~/.ccsm_proj`
endif

#################################################################################
if ($PHASE == set_batch) then
#################################################################################

source ./Tools/ccsm_getenv || exit -1

set npes   = `${CASEROOT}/Tools/taskmaker.pl -sumpes`
set ntasks = `${CASEROOT}/Tools/taskmaker.pl -sumtasks`
set mthrds = `${CASEROOT}/Tools/taskmaker.pl -maxthrds`

set taskpn = ${MAX_TASKS_PER_NODE}
@ tpn = ${taskpn} / ${mthrds}
if ($tpn < 1) set tpn = 1

@ nodes = ${npes} / ${tpn}
if ( ${npes} % ${tpn} > 0) then
  @ nodes = ${nodes} + 1
endif

#--- Job name is first fifteen characters of case name ---
set jobname = `echo ${CASE} | cut -c1-15`

set walltime = "00:59:00"
set qname = "debug"
if ($npes > 3072) then
  set walltime = "04:00:00"
  set qname = "standard"
endif
if ($CCSM_ESTCOST > 4) then
  set walltime = "02:00:00"
  set qname = "standard"
endif
if ($CCSM_ESTCOST > 7) then
  set walltime = "04:00:00"
  set qname = "standard"
endif

if ($?TESTMODE) then
 set file = $CASEROOT/${CASE}.test 
else
 set file = $CASEROOT/${CASE}.run 
endif

cat >! $file << EOF1
#!/bin/csh -f
#PBS -N ${jobname}
#PBS -q ${qname}
#PBS -A ${account_name}
#PBS -l application=Regional-Arctic-System-Model
#PBS -l select=${nodes}:ncpus=32:mpiprocs=${tpn}
#PBS -l walltime=${walltime}
#PBS -l place=scatter:excl
#PBS -j oe
#PBS -W umask=022
###PBS -M username@domain.com
###PBS -m be

EOF1

#################################################################################
else if ($PHASE == set_exe) then
#################################################################################

set maxthrds = `${CASEROOT}/Tools/taskmaker.pl -maxthrds`
set myaprun  = `${CASEROOT}/Tools/taskmaker.pl -aprun`

cat >> ${CASEROOT}/${CASE}.run << EOF1
sleep 25
cd \$RUNDIR
echo "\`date\` -- CSM EXECUTION BEGINS HERE" 

setenv OMP_NUM_THREADS ${maxthrds}
if ( "\$MPILIB" == "mpi-serial" ) then
  \$EXEROOT/cesm.exe >&! ccsm.log.\$LID
else
  aprun ${myaprun} >&! ccsm.log.\$LID
  wait

endif

echo "\`date\` -- CSM EXECUTION HAS FINISHED" 
EOF1

#################################################################################
else if ($PHASE == set_larch) then
#################################################################################

# Create the archive script

cat >! $CASEROOT/${CASE}.l_archive << EOF1
#! /bin/csh -f
#PBS -A ${account_name}
#PBS -N ${CASE}.l_archive
#PBS -q transfer
#PBS -l select=1:ncpus=1
#PBS -l walltime=02:00:00
#PBS -j oe
#PBS -S /bin/csh -V
###PBS -M username@domain.com
###PBS -m be

cd $CASEROOT 
source ./Tools/ccsm_getenv || exit -1
cd \$DOUT_S_ROOT
$CASEROOT/Tools/lt_archive.sh -m copy_dirs_hsi
exit 0
EOF1
chmod 775 ${CASEROOT}/${CASE}.l_archive

#################################################################################
else
#################################################################################

    echo "  PHASE setting of $PHASE is not an accepted value"
    echo "  accepted values are set_batch, set_exe and set_larch"
    exit 1

#################################################################################
endif
#################################################################################
