Skip to content
Snippets Groups Projects
Commit c82cb159 authored by Karl-Hermann Wieners's avatar Karl-Hermann Wieners
Browse files

importexp: changes due to tests on levante (NextGEMS cycle 2)

* added debug option to keep temp files (-x)
* added cpu option to set alleged # of cpus per node (-c), set default to 256
* changed namelist handling for new style scripts for levante/bash
* added initial/final date handling for new style scripts
parent 16531a2f
No related branches found
No related tags found
No related merge requests found
......@@ -4,8 +4,10 @@ BINDIR=$(dirname $0)
BUILD_SUBDIR=build
INTAKE_ONLY=false
SLURM_JOB_CPUS_PER_NODE=256
DEBUG=false
while getopts b:d:D:e:is:t: OPTOPT
while getopts b:d:D:e:is:t:c:x OPTOPT
do
case $OPTOPT in
b) BUILD_SUBDIR=$OPTARG ;;
......@@ -15,6 +17,8 @@ do
i) INTAKE_ONLY=true ;;
s) CUSTOM_SUBDIR=$OPTARG ;;
t) EXP_TYPE=$OPTARG ;;
c) SLURM_JOB_CPUS_PER_NODE=$OPTARG ;;
x) DEBUG=true ;;
*) exit 1;;
esac
done
......@@ -25,7 +29,7 @@ then
TMPDIR=$PWD
export TMPDIR
fi
trap 'rm -rf $RUN_FILE $LOG_FILE $WORK_DIR' 0
$DEBUG || trap 'rm -rf $RUN_FILE $LOG_FILE $WORK_DIR' 0
RUN_FILE=$(mktemp)
LOG_FILE=$(mktemp)
WORK_DIR=$(mktemp -d)
......@@ -54,7 +58,7 @@ do
# 4. to handle external scripts, replace ./ calls appropriately
# 5. levante scripts use bash, where -x does not show here-docs
SHOW_HERE_DOCS='\
for x in $master_namelist $atm_namelist $jsbach_namelist $oce_namelist\
for x in ${master_namelist:-icon_master.namelist} ${atm_namelist:-NAMELIST_atm} ${jsbach_namelist:-NAMELIST_lnd} ${oce_namelist:-NAMELIST_oce}\
do\
echo "cat > $x << EOF"\
cat $x\
......@@ -67,7 +71,7 @@ done\
s:^(\s*)SCRIPT_DIR=.*$:\1SCRIPT_DIR='$WORK_DIR':
s:^(\s*)EXPDIR=.*$:\1EXPDIR='$WORK_DIR':
s:^(\s*\.\s+)\./:\1'$RUN_BASE_DIR'/:
s:^\s*cat\s+\$thisscript\s*$:'"$SHOW_HERE_DOCS"':
s@^\s*cat\s+\$thisscript\s*$@'"$SHOW_HERE_DOCS"'@
s:^(\s*(export\s+)?MODEL=")\$\{basedir\}:\1'$MODEL_BASE_DIR':
' "$RUN_SCRIPT" > $RUN_FILE
......@@ -82,7 +86,7 @@ done\
SLURM_JOB_NUM_NODES=$(perl -ne 'if(/^\s*#SBATCH\s+(--nodes|-N)(=|\s+)(\d+)/) {print($3); exit}' $RUN_FILE)
SLURM_NODELIST="n[00001-$SLURM_JOB_NUM_NODES]"
SLURM_JOB_CPUS_PER_NODE=72
# SLURM_JOB_CPUS_PER_NODE is defined above
export SLURM_JOB_NUM_NODES SLURM_NODELIST SLURM_JOB_CPUS_PER_NODE
# Try to mimic restart logic
......@@ -100,7 +104,7 @@ done\
eval "$(perl -lne '/^(?:\d{4,}-\d\d-\d\dT\d\d:\d\d:\d\d:\ )?\+\ \s*(
EXPNAME|
(?:start|end)_date|
(?:start|end|initial|final)_date|
restart_interval|
(?:atmos|ocean)_(?:gridID|refinement)|
(?:rad|atm|oce|coupling)TimeStep
......@@ -128,7 +132,11 @@ ${oceTimeStep:+OCEAN_TIME_STEP = $oceTimeStep}
${couplingTimeStep:+COUPLER_TIME_STEP = $couplingTimeStep}
###/
EOF
$BINDIR/namelist2config -i "$EXPNAME" -a "$atmos_gridID" -A "$atmos_refinement" -o "$ocean_gridID" -O "$ocean_refinement" -I "$start_date" -F "$end_date" $LOG_FILE
INITIAL_DATE=${initial_date:-start_date}
FINAL_DATE=${final_date:-end_date}
$BINDIR/namelist2config -i "$EXPNAME" -a "$atmos_gridID" -A "$atmos_refinement" -o "$ocean_gridID" -O "$ocean_refinement" -I "$INITIAL_DATE" -F "$FINAL_DATE" $LOG_FILE
### i => 'EXP_ID',
### a => 'ATMO_GRID_ID',
### o => 'OCEAN_GRID_ID',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment