Skip to content
Snippets Groups Projects
Commit c5074d29 authored by Anne Philipp's avatar Anne Philipp
Browse files

added making of namelist file and jobscript via genshi templates

parent 0a066071
No related branches found
No related tags found
No related merge requests found
Showing with 216 additions and 305 deletions
#!/bin/ksh
# ON ECGB:
# start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE on gateway server
# start with sbatch NAME_OF_THIS_FILE directly on machine
#SBATCH --workdir=/scratch/ms/at/km4a
#SBATCH --qos=normal
#SBATCH --job-name=flex_ecmwf
#SBATCH --output=flex_ecmwf.%j.out
#SBATCH --error=flex_ecmwf.%j.out
#SBATCH --mail-type=FAIL
#SBATCH --time=12:00:00
## CRAY specific batch requests
##PBS -N flex_ecmwf
##PBS -q ns
##PBS -S /usr/bin/ksh
# -o /scratch/ms/no/sbc/flex_ecmwf.$Jobname.$Job_ID.out
# job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
##PBS -l EC_threads_per_task=1
##PBS -l EC_memory_per_task=3200MB
set -x
export VERSION=7.1
case $HOST in
*ecg*)
module load python
module unload grib_api
module unload emos
module load grib_api/1.14.5
module load emos/437-r64
export FLEXPART_ROOT_SCRIPTS=${HOME}
export MAKEFILE=Makefile.gfortran
;;
*cca*)
module switch PrgEnv-cray PrgEnv-intel
module load grib_api
module load emos
module load python
echo ${GROUP}
echo ${HOME}
echo $HOME | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo $HOME | awk -F / '{print $4}'`
export SCRATCH=/scratch/ms/${GROUP}/${USER}
export FLEXPART_ROOT_SCRIPTS=${HOME}
export MAKEFILE=Makefile.gfortran
;;
esac
mkdir -p $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION
cd $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf $HOME/flex_extract_v$VERSION.tar
cd src
\rm *.o *.mod CONVERT2
make -f $MAKEFILE >flexcompile 2>flexcompile
ls -l CONVERT2 >>flexcompile
if [ $? -eq 0 ]; then
echo 'SUCCESS!' >>flexcompile
mail -s flexcompile.$HOST.$$ $USER <flexcompile
else
echo Environment: >>flexcompile
env >> flexcompile
mail -s "ERROR! flexcompile.$HOST.$$" $USER <flexcompile
fi
......@@ -37,10 +37,11 @@ TEMPFILE_USER_ENVVARS = 'ECMWF_ENV.template'
FILE_USER_ENVVARS = 'ECMWF_ENV'
TEMPFILE_INSTALL_COMPILEJOB = 'compilejob.template'
FILE_INSTALL_COMPILEJOB = 'compilejob.ksh'
TEMPFILE_INSTALL_JOB = 'job.temp.o'
TEMPFILE_INSTALL_JOB = 'job.template'
TEMPFILE_JOB = 'job.temp'
FILE_JOB_OD = 'job.ksh'
FILE_JOB_OP = 'jopoper.ksh'
TEMPFILE_NAMELIST = 'convert.nl'
FILE_NAMELIST = 'fort.4'
FILE_GRIB_INDEX = 'date_time_stepRange.idx'
FILE_GRIBTABLE = 'ecmwf_grib1_table_128'
......
......@@ -657,7 +657,7 @@ class EcFlexpart(object):
return
def write_namelist(self, c, filename):
def write_namelist(self, c):
'''
@Description:
Creates a namelist file in the temporary directory and writes
......@@ -682,6 +682,13 @@ class EcFlexpart(object):
<nothing>
'''
from genshi.template.text import NewTextTemplate
from genshi.template import TemplateLoader
loader = TemplateLoader(_config.PATH_TEMPLATES, auto_reload=False)
compile_template = loader.load(_config.TEMPFILE_NAMELIST,
cls=NewTextTemplate)
self.inputdir = c.inputdir
area = np.asarray(self.area.split('/')).astype(float)
grid = np.asarray(self.grid.split('/')).astype(float)
......@@ -691,27 +698,30 @@ class EcFlexpart(object):
maxl = int((area[3] - area[1]) / grid[1]) + 1
maxb = int((area[0] - area[2]) / grid[0]) + 1
with open(self.inputdir + '/' + filename, 'w') as f:
f.write('&NAMGEN\n')
f.write(',\n '.join(['maxl = ' + str(maxl), 'maxb = ' + str(maxb),
'mlevel = ' + str(self.level),
'mlevelist = ' + '"' + str(self.levelist)
+ '"',
'mnauf = ' + str(self.resol),
'metapar = ' + '77',
'rlo0 = ' + str(area[1]),
'rlo1 = ' + str(area[3]),
'rla0 = ' + str(area[2]),
'rla1 = ' + str(area[0]),
'momega = ' + str(c.omega),
'momegadiff = ' + str(c.omegadiff),
'mgauss = ' + str(c.gauss),
'msmooth = ' + str(c.smooth),
'meta = ' + str(c.eta),
'metadiff = ' + str(c.etadiff),
'mdpdeta = ' + str(c.dpdeta)]))
f.write('\n/\n')
stream = compile_template.generate(
maxl = str(maxl),
maxb = str(maxb),
mlevel = str(self.level),
mlevelist = str(self.levelist),
mnauf = str(self.resol),
metapar = '77',
rlo0 = str(area[1]),
rlo1 = str(area[3]),
rla0 = str(area[2]),
rla1 = str(area[0]),
momega = str(c.omega),
momegadiff = str(c.omegadiff),
mgauss = str(c.gauss),
msmooth = str(c.smooth),
meta = str(c.eta),
metadiff = str(c.etadiff),
mdpdeta = str(c.dpdeta)
)
namelistfile = os.path.join(self.inputdir, _config.FILE_NAMELIST)
with open(namelistfile, 'w') as f:
f.write(stream.render('text'))
return
......
......@@ -395,8 +395,8 @@ def mk_compilejob(makefile, target, ecuid, ecgid, fp_root):
fp_root = '$HOME'
stream = compile_template.generate(
username = ecuid,
usergroup = ecgid,
username = ecuid,
version_number = _config._VERSION_STR,
fp_root_scripts = fp_root,
makefile = makefile,
......@@ -409,36 +409,6 @@ def mk_compilejob(makefile, target, ecuid, ecgid, fp_root):
with open(compilejob, 'w') as f:
f.write(stream.render('text'))
# template = os.path.join(_config.PATH_REL_TEMPLATES,
# _config.TEMPFILE_INSTALL_COMPILEJOB)
# with open(template) as f:
# fdata = f.read().split('\n')
# with open(compilejob, 'w') as fo:
# for data in fdata:
# if 'MAKEFILE=' in data:
# data = 'export MAKEFILE=' + makefile
# elif 'FLEXPART_ROOT_SCRIPTS=' in data:
# if fp_root != '../':
# data = 'export FLEXPART_ROOT_SCRIPTS=' + fp_root
# else:
# data = 'export FLEXPART_ROOT_SCRIPTS=$HOME'
# elif target.lower() != 'local':
# if '--workdir' in data:
# data = '#SBATCH --workdir=/scratch/ms/' + \
# ecgid + '/' + ecuid
# elif '##PBS -o' in data:
# data = '##PBS -o /scratch/ms/' + ecgid + '/' + ecuid + \
# 'flex_ecmwf.$Jobname.$Job_ID.out'
# elif 'FLEXPART_ROOT_SCRIPTS=' in data:
# if fp_root != '../':
# data = 'export FLEXPART_ROOT_SCRIPTS=' + fp_root
# else:
# data = 'export FLEXPART_ROOT_SCRIPTS=$HOME'
# fo.write(data + '\n')
return
def mk_job_template(ecuid, ecgid, gateway, destination, fp_root):
......@@ -469,27 +439,30 @@ def mk_job_template(ecuid, ecgid, gateway, destination, fp_root):
@Return:
<nothing>
'''
fp_root_path_to_python = os.path.join(fp_root, _config.FLEXEXTRACT_DIRNAME,
from genshi.template.text import NewTextTemplate
from genshi.template import TemplateLoader
loader = TemplateLoader(_config.PATH_TEMPLATES, auto_reload=False)
compile_template = loader.load(_config.TEMPFILE_INSTALL_JOB,
cls=NewTextTemplate)
fp_root_path_to_python = os.path.join(fp_root,
_config.FLEXEXTRACT_DIRNAME,
_config.PATH_REL_PYTHON)
template = os.path.join(_config.PATH_REL_TEMPLATES,
_config.TEMPFILE_INSTALL_JOB)
with open(template) as f:
fdata = f.read().split('\n')
stream = compile_template.generate(
usergroup = ecgid,
username = ecuid,
version_number = _config._VERSION_STR,
fp_root_path = fp_root_path_to_python,
)
jobfile_temp = os.path.join(_config.PATH_REL_TEMPLATES,
tempjobfile = os.path.join(_config.PATH_TEMPLATES,
_config.TEMPFILE_JOB)
with open(jobfile_temp, 'w') as fo:
for data in fdata:
if '--workdir' in data:
data = '#SBATCH --workdir=/scratch/ms/' + ecgid + '/' + ecuid
elif '##PBS -o' in data:
data = '##PBS -o /scratch/ms/' + ecgid + '/' + \
ecuid + 'flex_ecmwf.$Jobname.$Job_ID.out'
elif 'export PATH=${PATH}:' in data:
data += fp_root_path_to_python
fo.write(data + '\n')
with open(tempjobfile, 'w') as f:
f.write(stream.render('text'))
return
def delete_convert_build(src_path):
......
......@@ -159,7 +159,7 @@ def prepare_flexpart(ppid, c):
# deaccumulate the flux data
flexpart = EcFlexpart(c, fluxes=True)
flexpart.write_namelist(c, _config.FILE_NAMELIST)
flexpart.write_namelist(c)
flexpart.deacc_fluxes(inputfiles, c)
# get a list of all files from the root inputdir
......
......@@ -8,7 +8,7 @@ CLASS EI
STREAM OPER
NUMBER OFF
EXPVER 1
GRID 5000
GRID 1000
LEFT -15000
LOWER 30000
UPPER 75000
......
......@@ -16,7 +16,7 @@
##PBS -N flex_ecmwf
##PBS -q ns
##PBS -S /usr/bin/ksh
##PBS -o /scratch/ms/testgroup/testuser/flex_ecmwf.$Jobname.$Job_ID.out
##PBS -o /scratch/ms/testgroup/testuser/flex_ecmwf.${Jobname}.${Job_ID}.out
# job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
......@@ -25,7 +25,7 @@
set -x
export VERSION=7.1
case $HOST in
case ${HOST} in
*ecg*)
module load python
module unload grib_api
......@@ -42,27 +42,27 @@ case $HOST in
module load python
echo ${GROUP}
echo ${HOME}
echo $HOME | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo $HOME | awk -F / '{print $4}'`
echo ${HOME} | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo ${HOME} | awk -F / '{print $4}'`
export SCRATCH=/scratch/ms/${GROUP}/${USER}
export FLEXPART_ROOT_SCRIPTS=p_root_test_path
export FLEXPART_ROOT_SCRIPTS=fp_root_test_path
export MAKEFILE=Makefile.TEST
;;
esac
mkdir -p $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION
cd $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf $HOME/flex_extract_v$VERSION.tar
mkdir -p ${FLEXPART_ROOT_SCRIPTS}/flex_extract_v${VERSION}
cd ${FLEXPART_ROOT_SCRIPTS}/flex_extract_v${VERSION} # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf ${HOME}/flex_extract_v${VERSION}.tar
cd src
\rm *.o *.mod CONVERT2
make -f $MAKEFILE >flexcompile 2>flexcompile
make -f ${MAKEFILE} >flexcompile 2>flexcompile
ls -l CONVERT2 >>flexcompile
if [ $? -eq 0 ]; then
echo 'SUCCESS!' >>flexcompile
mail -s flexcompile.$HOST.$$ $USER <flexcompile
mail -s flexcompile.${HOST}.$$ ${USER} <flexcompile
else
echo Environment: >>flexcompile
env >> flexcompile
mail -s "ERROR! flexcompile.$HOST.$$" $USER <flexcompile
mail -s "ERROR! flexcompile.${HOST}.$$" ${USER} <flexcompile
fi
&NAMGEN
maxl = 61,
maxb = 46,
mlevel = 60,
mlevelist = "55/to/60",
mnauf = 63,
metapar = 77,
rlo0 = -15.0,
rlo1 = 45.0,
rla0 = 30.0,
rla1 = 75.0,
momega = 0,
momegadiff = 0,
mgauss = 1,
msmooth = 0,
meta = 0,
metadiff = 0,
mdpdeta = 1
/
......@@ -4,7 +4,7 @@
# start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE on gateway server
# start with sbatch NAME_OF_THIS_FILE directly on machine
#SBATCH --workdir=/scratch/ms/at/km4a
#SBATCH --workdir=/scratch/ms/testgroup/testuser
#SBATCH --qos=normal
#SBATCH --job-name=flex_ecmwf
#SBATCH --output=flex_ecmwf.%j.out
......@@ -16,7 +16,7 @@
##PBS -N flex_ecmwf
##PBS -q np
##PBS -S /usr/bin/ksh
## -o /scratch/ms/spatlh00/lh0/flex_ecmwf.$PBS_JOBID.out
## -o /scratch/ms/testgroup/testuser/flex_ecmwf.${PBS_JOBID}.out
## job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
......@@ -25,52 +25,52 @@
set -x
export VERSION=7.1
case $HOST in
case ${HOST} in
*ecg*)
module load python
module unload grib_api
module unload emos
module load grib_api/1.14.5
module load emos/437-r64
export PATH=${PATH}:${HOME}/flex_extract_v7.1/source/python
export PATH=${PATH}:fp_root_test_path/flex_extract_v7.1/source/python
;;
*cca*)
module switch PrgEnv-cray PrgEnv-intel
module load grib_api
module load emos
module load python
export SCRATCH=$TMPDIR
export PATH=${PATH}:${HOME}/flex_extract_v7.1/source/python
export SCRATCH=${TMPDIR}
export PATH=${PATH}:fp_root_test_path/flex_extract_v7.1/source/python
;;
esac
cd $SCRATCH
cd ${SCRATCH}
mkdir -p python$$
cd python$$
export CONTROL=CONTROL
cat >$CONTROL<<EOF
cat >${CONTROL}<<EOF
EOF
submit.py --controlfile=$CONTROL --inputdir=./work --outputdir=./work 1> prot 2>&1
submit.py --controlfile=${CONTROL} --inputdir=./work --outputdir=./work 1> prot 2>&1
if [ $? -eq 0 ] ; then
l=0
for muser in `grep -i MAILOPS $CONTROL`; do
if [ $l -gt 0 ] ; then
mail -s flex.${HOST}.$$ $muser <prot
for muser in `grep -i MAILOPS ${CONTROL}`; do
if [ ${l} -gt 0 ] ; then
mail -s flex.${HOST}.$$ ${muser} <prot
fi
l=$(($l+1))
l=$((${l}+1))
done
else
l=0
for muser in `grep -i MAILFAIL $CONTROL`; do
if [ $l -gt 0 ] ; then
mail -s "ERROR! flex.${HOST}.$$" $muser <prot
for muser in `grep -i MAILFAIL ${CONTROL}`; do
if [ ${l} -gt 0 ] ; then
mail -s "ERROR! flex.${HOST}.$$" ${muser} <prot
fi
l=$(($l+1))
l=$((${l}+1))
done
fi
......@@ -3,23 +3,44 @@
import sys
import os
import inspect
import pytest
sys.path.append('../python')
import _config
from classes.EcFlexpart import EcFlexpart
from classes.ControlFile import ControlFile
from mods.tools import silent_remove
class TestEcFlexpart():
'''
'''
def test_init(self):
# create an instance of EcFlexpart and get a dictionary of the
# class attributes, compare this dict with an expected dict!
assert True == True
def test_write_namelist(self):
# simple
assert True == True
import filecmp
control_file = os.path.join(_config.PATH_TEST_DIR,
'TestData',
'CONTROL.temp')
c = ControlFile(control_file)
flexpart = EcFlexpart(c)
c.inputdir = 'TestData'
# comparison file
testfile = os.path.join(_config.PATH_TEST_DIR,
'TestData',
'convert.nl.test')
# create
flexpart.write_namelist(c)
finalfile = os.path.join(c.inputdir, _config.FILE_NAMELIST)
assert filecmp.cmp(testfile, finalfile, shallow=False)
# delete test file
silent_remove(finalfile)
def test_retrieve(self):
# not sure how to check
......
......@@ -24,8 +24,8 @@ class TestTools():
#! - mk_tarball
#! - un_tarball
#! - mk_env_vars
# - mk_compilejob
# - mk_job_template
#! - mk_compilejob
#! - mk_job_template
# - delete_convert_build
# - make_convert_build
......@@ -154,3 +154,25 @@ class TestTools():
# delete test file
silent_remove(finalfile)
def test_mk_job_template(self):
import filecmp
# comparison file
testfile = os.path.join(_config.PATH_TEST_DIR,
'TestData',
'job.temp.test')
# create
install.mk_job_template('testuser',
'testgroup',
'gateway.test.ac.at',
'dest@generic',
'fp_root_test_path')
finalfile = os.path.join(_config.PATH_TEMPLATES,
_config.TEMPFILE_JOB)
assert filecmp.cmp(testfile, finalfile, shallow=False)
# delete test file
silent_remove(finalfile)
\ No newline at end of file
#!/bin/ksh
# ON ECGB:
# start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE on gateway server
# start with sbatch NAME_OF_THIS_FILE directly on machine
#SBATCH --workdir=/scratch/ms/spatlh00/lh0
#SBATCH --qos=normal
#SBATCH --job-name=flex_ecmwf
#SBATCH --output=flex_ecmwf.%j.out
#SBATCH --error=flex_ecmwf.%j.out
#SBATCH --mail-type=FAIL
#SBATCH --time=12:00:00
## CRAY specific batch requests
##PBS -N flex_ecmwf
##PBS -q ns
##PBS -S /usr/bin/ksh
# -o /scratch/ms/no/sbc/flex_ecmwf.$Jobname.$Job_ID.out
# job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
##PBS -l EC_threads_per_task=1
##PBS -l EC_memory_per_task=3200MB
set -x
export VERSION=7.1
case $HOST in
*ecg*)
module load python
module unload grib_api
module unload emos
module load grib_api/1.14.5
module load emos/437-r64
export FLEXPART_ROOT_SCRIPTS=
export MAKEFILE=Makefile.gfortran
;;
*cca*)
module switch PrgEnv-cray PrgEnv-intel
module load grib_api
module load emos
module load python
echo ${GROUP}
echo ${HOME}
echo $HOME | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo $HOME | awk -F / '{print $4}'`
export SCRATCH=/scratch/ms/${GROUP}/${USER}
export FLEXPART_ROOT_SCRIPTS=
export MAKEFILE=Makefile.CRAY
;;
esac
mkdir -p $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION
cd $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf $HOME/flex_extract_v$VERSION.tar
cd src
\rm *.o *.mod CONVERT2
make -f $MAKEFILE >flexcompile 2>flexcompile
ls -l CONVERT2 >>flexcompile
if [ $? -eq 0 ]; then
echo 'SUCCESS!' >>flexcompile
mail -s flexcompile.$HOST.$$ $USER <flexcompile
else
echo Environment: >>flexcompile
env >> flexcompile
mail -s "ERROR! flexcompile.$HOST.$$" $USER <flexcompile
fi
......@@ -16,7 +16,7 @@
##PBS -N flex_ecmwf
##PBS -q ns
##PBS -S /usr/bin/ksh
##PBS -o /scratch/ms/$usergroup/$username/flex_ecmwf.$Jobname.$Job_ID.out
##PBS -o /scratch/ms/$usergroup/$username/flex_ecmwf.$${Jobname}.$${Job_ID}.out
# job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
......@@ -25,7 +25,7 @@
set -x
export VERSION=$version_number
case $HOST in
case $${HOST} in
*ecg*)
module load python
module unload grib_api
......@@ -40,29 +40,29 @@ case $HOST in
module load grib_api
module load emos
module load python
echo ${GROUP}
echo ${HOME}
echo $HOME | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo $HOME | awk -F / '{print $4}'`
export SCRATCH=/scratch/ms/${GROUP}/${USER}
echo $${GROUP}
echo $${HOME}
echo $${HOME} | awk -F / '{print $1, $2, $3, $4}'
export GROUP=`echo $${HOME} | awk -F / '{print $4}'`
export SCRATCH=/scratch/ms/$${GROUP}/$${USER}
export FLEXPART_ROOT_SCRIPTS=$fp_root_scripts
export MAKEFILE=$makefile
;;
esac
mkdir -p $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION
cd $FLEXPART_ROOT_SCRIPTS/flex_extract_v$VERSION # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf $HOME/flex_extract_v$VERSION.tar
mkdir -p $${FLEXPART_ROOT_SCRIPTS}/flex_extract_v$${VERSION}
cd $${FLEXPART_ROOT_SCRIPTS}/flex_extract_v$${VERSION} # if FLEXPART_ROOT is not set this means cd to the home directory
tar -xvf $${HOME}/flex_extract_v$${VERSION}.tar
cd src
\rm *.o *.mod $fortran_program
make -f $MAKEFILE >flexcompile 2>flexcompile
make -f $${MAKEFILE} >flexcompile 2>flexcompile
ls -l $fortran_program >>flexcompile
if [ $? -eq 0 ]; then
if [ $$? -eq 0 ]; then
echo 'SUCCESS!' >>flexcompile
mail -s flexcompile.$HOST.$$ $USER <flexcompile
mail -s flexcompile.$${HOST}.$$$$ $${USER} <flexcompile
else
echo Environment: >>flexcompile
env >> flexcompile
mail -s "ERROR! flexcompile.$HOST.$$" $USER <flexcompile
mail -s "ERROR! flexcompile.$${HOST}.$$$$" $${USER} <flexcompile
fi
&NAMGEN
maxl = $maxl,
maxb = $maxb,
mlevel = $mlevel,
mlevelist = "$mlevelist",
mnauf = $mnauf,
metapar = $metapar,
rlo0 = $rlo0,
rlo1 = $rlo1,
rla0 = $rla0,
rla1 = $rla1,
momega = $momega,
momegadiff = $momegadiff,
mgauss = $mgauss,
msmooth = $msmooth,
meta = $meta,
metadiff = $metadiff,
mdpdeta = $mdpdeta
/
......@@ -4,7 +4,7 @@
# start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE on gateway server
# start with sbatch NAME_OF_THIS_FILE directly on machine
#SBATCH --workdir=/scratch/ms/spatlh00/lh0
#SBATCH --workdir=/scratch/ms/$usergroup/$username
#SBATCH --qos=normal
#SBATCH --job-name=flex_ecmwf
#SBATCH --output=flex_ecmwf.%j.out
......@@ -16,7 +16,7 @@
##PBS -N flex_ecmwf
##PBS -q np
##PBS -S /usr/bin/ksh
## -o /scratch/ms/spatlh00/lh0/flex_ecmwf.$PBS_JOBID.out
## -o /scratch/ms/$usergroup/$username/flex_ecmwf.$${PBS_JOBID}.out
## job output is in .ecaccess_DO_NOT_REMOVE
##PBS -j oe
##PBS -V
......@@ -24,52 +24,53 @@
##PBS -l EC_memory_per_task=32000MB
set -x
export VERSION=7.1
case $HOST in
export VERSION=$version_number
case $${HOST} in
*ecg*)
module load python
module unload grib_api
module unload emos
module load grib_api/1.14.5
module load emos/437-r64
export PATH=${PATH}:
export PATH=$${PATH}:$fp_root_path
;;
*cca*)
module switch PrgEnv-cray PrgEnv-intel
module load grib_api
module load emos
module load python
export SCRATCH=$TMPDIR
export PATH=${PATH}:
export SCRATCH=$${TMPDIR}
export PATH=$${PATH}:$fp_root_path
;;
esac
cd $SCRATCH
mkdir -p python$$
cd python$$
cd $${SCRATCH}
mkdir -p python$$$$
cd python$$$$
export CONTROL=CONTROL
cat >$CONTROL<<EOF
cat >$${CONTROL}<<EOF
EOF
submit.py --controlfile=$CONTROL --inputdir=./work --outputdir=./work 1> prot 2>&1
submit.py --controlfile=$${CONTROL} --inputdir=./work --outputdir=./work 1> prot 2>&1
if [ $? -eq 0 ] ; then
l=0
for muser in `grep -i MAILOPS $CONTROL`; do
if [ $l -gt 0 ] ; then
mail -s flex.${HOST}.$$ $muser <prot
for muser in `grep -i MAILOPS $${CONTROL}`; do
if [ $${l} -gt 0 ] ; then
mail -s flex.$${HOST}.$$$$ $${muser} <prot
fi
l=$(($l+1))
l=$(($${l}+1))
done
else
l=0
for muser in `grep -i MAILFAIL $CONTROL`; do
if [ $l -gt 0 ] ; then
mail -s "ERROR! flex.${HOST}.$$" $muser <prot
for muser in `grep -i MAILFAIL $${CONTROL}`; do
if [ $${l} -gt 0 ] ; then
mail -s "ERROR! flex.$${HOST}.$$$$" $${muser} <prot
fi
l=$(($l+1))
l=$(($${l}+1))
done
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment