New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
sette_test-cases.sh in utils/CI/sette_ticket2673 – NEMO

source: utils/CI/sette_ticket2673/sette_test-cases.sh @ 14893

Last change on this file since 14893 was 14893, checked in by acc, 3 years ago

Branch sette_ticket2673. Add -g option to supply a 1 character, alphanumeric suffix which is appended to _ST when creating configuration directories. This allows grouping of runtime directories so that chained invocations of sette.sh will not be at risk of interference. I.e. it makes possible a super-sette script such as:
#!/bin/bash
# set -vx
# Simple script to create a full suite of tests
#
./sette.sh -r -g 0 # Full tests - MAIN (using *_ST0 config dirs)
./sette.sh -e -F -t -v HALO1 -g 1 -r # Full tests - with nn_hls=1 (using *_ST1 config dirs)
./sette.sh -i -e -F -t -n ORCA2_ICE_PISCES -v NO_ICB1 -g 2 -r # ORCA2_ICE_PISCES, nn_hls=1, no icebergs (using *_ST2 config dirs)
./sette.sh -i -n ORCA2_ICE_PISCES -v NO_ICB2 -g 3 -r # ORCA2_ICE_PISCES, nn_hls=2, no icebergs (using *_ST3 config dirs)
./sette.sh -C -n ORCA2_ICE_PISCES -v NO_COLL -g 4 -r # ORCA2_ICE_PISCES, nn_hls=2, no collectives (using *_ST4 config dirs)
./sette.sh -q -v NO_QCO -g 5 # Full tests without key_qco (using *_ST5 config dirs)
#
exit

  • Property svn:executable set to *
File size: 37.6 KB
Line 
1#!/bin/bash
2############################################################
3# Author : Simona Flavoni for NEMO
4# Contact: sflod@locean-ipsl.upmc.fr
5#
6# sette_test-cases.sh   : principal script of SET TEsts for NEMO (SETTE)
7#                       : this script : compiles, run and tests TEST_CASES
8#
9#                       : TO DO: test if nitend is equal to end of run.stat
10# ----------------------------------------------------------------------
11# NEMO/SETTE , NEMO Consortium (2018)
12# Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
13# ----------------------------------------------------------------------
14#
15#############################################################
16#set -vx
17set -o posix
18#set -u
19#set -e
20# ===========
21# DESCRIPTION
22# ===========
23#
24# Variables to be checked by user:
25#
26# COMPILER          : name of compiler as defined in NEMOGCM/ARCH directory
27# BATCH_COMMAND_PAR :  name of the command for submitting parallel batch jobs
28# BATCH_COMMAND_SEQ :  name of the command for submitting sequential batch jobs 
29# INTERACT_FLAG     : flag to run in interactive mode "yes"
30#                           to run in batch mode "no"
31# MPIRUN_FLAG       : flag to run in parallel (MPI) "yes"
32#                           to run in sequential mode (NB_PROC = 1) "no"
33# NUM_XIOSERVERS    : number of stand-alone IO servers to employ
34#                     set to zero if USING_MPMD="no"
35#
36# Principal script is sette_test-cases.sh, that calls
37#
38#  makenemo  : to create successive exectuables in ${CONFIG_NAME}/BLD/bin/nemo.exe
39#              and links to nemo in ${CONFIG_NAME}/EXP00)
40#
41#  param.cfg : sets and loads following directories:
42#              This will have been run by the parent sette.sh and values exported here
43#
44#   FORCING_DIR         : is the directory for forcing files (tarfile)
45#   INPUT_DIR           : is the directory for input files storing
46#   TMPDIR              : is the temporary directory (if needed)
47#   NEMO_VALIDATION_DIR : is the validation directory
48#
49#   (NOTE: this file is the same for all configrations to be tested with sette_test-cases.sh)
50#
51#   all_functions.sh : loads functions used by sette (note: new functions can be added here)
52#   set_namelist     : function declared in all_functions that sets namelist parameters
53#   post_test_tidyup : creates validation storage directory and copies required output files
54#                      (run.stat and ocean.output) in it after execution of test.
55#
56#  VALIDATION tree is:
57#
58#   NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE)
59#
60#  prepare_exe_dir.sh : defines and creates directory where the test is executed
61#                       execution directory takes name of TEST_NAME defined for every test
62#                       in sette_test-cases.sh. (each test in executed in its own directory)
63#
64#  set_valid_dir       : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
65#
66#  clean_valid_dir    : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
67#                       ( not doing it could lead to false positive )
68#
69#  prepare_job.sh     : to generate the script run_job.sh
70#
71#  fcm_job.sh         : run in batch (INTERACT_FLAG="no") or interactive (INTERACT_FLAG="yes")
72#                        see sette_test-cases.sh and BATCH_TEMPLATE directory
73#
74#  NOTE: jobs requiring initial or forcing data need to have an input_CONFIG.cfg in which
75#        can be found paths to the input tar file)
76#  NOTE: if job is not launched for any reason you have the executable ready in ${EXE_DIR}
77#        directory
78#  NOTE: the changed namelists are left in ${EXE_DIR} directory whereas original namelists
79#        remain in ${NEW_CONF}/EXP00
80#
81#  NOTE: a log file, output.sette, is created in ${SETTE_DIR} with the echoes of
82#        executed commands
83#
84#  NOTE: if sette_test-cases.sh is stopped in output.sette there is written the last command
85#        executed by sette_test-cases.sh
86#
87# example use: ./sette_test-cases.sh
88#########################################################################################
89#
90# LOAD param value
91SETTE_DIR=$(cd $(dirname "$0"); pwd)
92MAIN_DIR=$(dirname $SETTE_DIR)
93
94export BATCH_COMMAND_PAR=${BATCH_CMD}
95export BATCH_COMMAND_SEQ=${BATCH_CMD}
96export INTERACT_FLAG="no"
97export MPIRUN_FLAG="yes"
98#
99# Settings which control the use of stand alone servers (only relevant if using xios)
100#
101export NUM_XIOSERVERS=4
102export JOB_PREFIX=${JOB_PREFIX_MPMD}
103#
104if [ ${USING_MPMD} == "no" ] 
105 then
106   export NUM_XIOSERVERS=0
107   export JOB_PREFIX=${JOB_PREFIX_NOMPMD}
108fi
109#
110# Directory to run the tests
111CONFIG_DIR0=${MAIN_DIR}/cfgs
112TOOLS_DIR=${MAIN_DIR}/tools
113
114CMP_NAM=${1:-$COMPILER}
115# Copy job_batch_COMPILER file for specific compiler into job_batch_template
116cd ${SETTE_DIR}
117cp BATCH_TEMPLATE/${JOB_PREFIX}-${COMPILER} job_batch_template || exit
118# Description of configuration tested:
119# OVERFLOW       : TEST s-coordinates : (tracers) Advection schemes: FCT2, FCT4, ubs
120#                                     & (dynamics) advection schemes: flux form (ubs, centered), vector form (een)
121#                       zps-coordinates : (tracers) Advection schemes: FCT2, FCT4, ubs
122#                                     & (dynamics) advection schemes: flux form (ubs, centered), vector form (een, and een + Hollingsworth correction)
123# LOCK_EXCHANGE  :
124# VORTEX         :
125# ICE_AGRIF      :
126# ISOMIP+         :
127# WAD
128
129. ./all_functions.sh
130for config in ${TEST_CONFIGS[@]}
131do
132
133# ---------
134#  OVERFLOW
135# ---------
136if [ ${config} == "OVERFLOW" ] ;  then
137    SETTE_CONFIG="OVERFLOW"${SETTE_STG}
138    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
139    then
140   ITEND=12
141    else
142   ITEND=120
143    fi
144    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
145    cd ${MAIN_DIR}
146    #
147    #
148    clean_config OVERFLOW ${SETTE_CONFIG} 'tests'
149    #
150    sync_config  OVERFLOW ${SETTE_CONFIG} 'tests'
151    #
152    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a OVERFLOW -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
153fi
154if [ ${config} == "OVERFLOW" ] && [ ${DO_RESTART} == "1" ] ;  then
155    ## Restartability tests for OVERFLOW
156    export TEST_NAME="LONG"
157    cd ${SETTE_DIR}
158    . ./prepare_exe_dir.sh
159    set_valid_dir
160    clean_valid_dir
161    JOB_FILE=${EXE_DIR}/run_job.sh
162    NPROC=1
163    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
164    cd ${EXE_DIR} 
165    set_namelist namelist_cfg cn_exp \"OVF_LONG\"
166    set_namelist namelist_cfg nn_it000 1
167    set_namelist namelist_cfg nn_itend ${ITEND}
168    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
169    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
170    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
171    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
172    set_xio_using_server iodef.xml ${USING_MPMD}
173    cd ${SETTE_DIR}
174    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
175
176    cd ${SETTE_DIR}
177    export TEST_NAME="SHORT"
178    . ./prepare_exe_dir.sh
179    set_valid_dir
180    clean_valid_dir
181    cd ${EXE_DIR}
182    set_namelist namelist_cfg cn_exp \"OVF_SHORT\"
183    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
184    set_namelist namelist_cfg nn_itend ${ITEND}
185    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
186    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
187    set_namelist namelist_cfg ln_rstart .true.
188    set_namelist namelist_cfg nn_rstctl 2
189    set_namelist namelist_cfg cn_ocerst_in \"OVF_LONG_${ITRST}_restart\"
190    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
191    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
192    set_xio_using_server iodef.xml ${USING_MPMD}
193    ln -sf ../LONG/OVF_LONG_${ITRST}_restart.nc .
194
195    cd ${SETTE_DIR}
196    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
197    cd ${SETTE_DIR}
198    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
199
200
201fi
202
203if [ ${config} == "OVERFLOW" ] && [ ${DO_PHYOPTS} == "1" ] ;  then
204    ## Test for all advection, vert. coordinates, vector form, flux form: test runability and complete all time steps
205    ## Needed namelist-xxxx for every type of run tested
206    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
207    then
208   ITEND=12
209    else
210   ITEND=6120
211    fi
212    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
213
214    for file in $(echo `ls namelist_*_cfg `) ; do
215        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
216        TEST_NAME="EXP-${TEST_NAME}"
217        if [ ! -d ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ] ; then mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ; fi
218        export TEST_NAME="${TEST_NAME}"
219         ##
220        cd ${SETTE_DIR}
221        . ./prepare_exe_dir.sh
222        set_valid_dir
223        clean_valid_dir
224        JOB_FILE=${EXE_DIR}/run_job.sh
225        NPROC=1
226        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
227        cd ${EXE_DIR}
228        rm namelist_*_*_*_*
229        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
230   set_namelist namelist_cfg nn_it000 1
231   set_namelist namelist_cfg nn_itend ${ITEND}
232        set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
233        set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
234        set_xio_using_server iodef.xml ${USING_MPMD}
235        cd ${SETTE_DIR}
236        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
237        cd ${SETTE_DIR}
238        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
239       ##
240     done
241fi
242
243# --------------
244#  LOCK_EXCHANGE
245# --------------
246if [ ${config} == "LOCK_EXCHANGE" ] ;  then
247    SETTE_CONFIG="LOCK_EXCHANGE"${SETTE_STG}
248    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
249    then
250   ITEND=12
251    else
252   ITEND=120
253    fi
254    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
255    cd ${MAIN_DIR}
256    #
257    # syncronisation if target directory/file exist (not done by makenemo)
258    #
259    clean_config LOCK_EXCHANGE ${SETTE_CONFIG} 'tests'
260    #
261    sync_config  LOCK_EXCHANGE ${SETTE_CONFIG} 'tests'
262    #
263    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a LOCK_EXCHANGE -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
264fi
265if [ ${config} == "LOCK_EXCHANGE" ] && [ ${DO_RESTART} == "1" ] ;  then
266    ## Restartability tests for LOCK_EXCHANGE
267    export TEST_NAME="LONG"
268    cd ${SETTE_DIR}
269    . ./prepare_exe_dir.sh
270    set_valid_dir
271    clean_valid_dir
272    JOB_FILE=${EXE_DIR}/run_job.sh
273    NPROC=1
274    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
275    cd ${EXE_DIR}
276    set_namelist namelist_cfg cn_exp \"LOCK_LONG\"
277    set_namelist namelist_cfg nn_it000 1
278    set_namelist namelist_cfg nn_itend ${ITEND}
279    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
280    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
281    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
282    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
283    set_xio_using_server iodef.xml ${USING_MPMD}
284    cd ${SETTE_DIR}
285    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
286
287    cd ${SETTE_DIR}
288    export TEST_NAME="SHORT"
289    . ./prepare_exe_dir.sh
290    set_valid_dir
291    clean_valid_dir
292    cd ${EXE_DIR}
293    set_namelist namelist_cfg cn_exp \"LOCK_SHORT\"
294    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
295    set_namelist namelist_cfg nn_itend ${ITEND}
296    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
297    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
298    set_namelist namelist_cfg ln_rstart .true.
299    set_namelist namelist_cfg nn_rstctl 2
300    set_namelist namelist_cfg cn_ocerst_in \"LOCK_LONG_${ITRST}_restart\"
301    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
302    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
303    set_xio_using_server iodef.xml ${USING_MPMD}
304    ln -sf ../LONG/LOCK_LONG_${ITRST}_restart.nc .
305
306    cd ${SETTE_DIR}
307    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
308    cd ${SETTE_DIR}
309    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
310
311fi
312
313if [ ${config} == "LOCK_EXCHANGE" ] && [ ${DO_PHYOPTS} == "1" ] ;  then
314    ## Test for all advection, vector form, flux form: test runability and complete all time steps
315    ## Needed namelist-xxxx for every type of run tested
316    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
317    then
318   ITEND=12
319    else
320   ITEND=61200
321    fi
322    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
323
324    for file in $(echo `ls namelist_*_cfg `) ; do
325        echo ''
326        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
327        TEST_NAME="EXP-${TEST_NAME}"
328        `mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME}`
329        export TEST_NAME="${TEST_NAME}"
330        ## 
331        cd ${SETTE_DIR}
332        . ./prepare_exe_dir.sh
333        set_valid_dir
334        clean_valid_dir
335        JOB_FILE=${EXE_DIR}/run_job.sh
336        NPROC=1
337        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
338        cd ${EXE_DIR}
339        rm namelist_*_*_*_*
340        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
341   set_namelist namelist_cfg nn_it000 1
342        set_namelist namelist_cfg nn_itend ${ITEND}
343        set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
344        set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
345        set_xio_using_server iodef.xml ${USING_MPMD}
346        cd ${SETTE_DIR}
347        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
348        cd ${SETTE_DIR}
349        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
350        ##
351        echo ''
352   done
353fi
354
355# ---------
356# VORTEX
357# ---------
358if [ ${config} == "VORTEX" ] ;  then
359    SETTE_CONFIG="VORTEX"${SETTE_STG}
360    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
361    then
362   ITEND=12
363    else
364   ITEND=240
365    fi
366    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
367    ITRST_1=$( printf "%08d" $(( ${ITEND} * 3 / 2 )) )
368    cd ${MAIN_DIR}
369    #
370    # syncronisation if target directory/file exist (not done by makenemo)
371    #
372    clean_config VORTEX ${SETTE_CONFIG} 'tests'
373    #
374    sync_config  VORTEX ${SETTE_CONFIG} 'tests'
375    #
376    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a VORTEX -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
377fi
378if [ ${config} == "VORTEX" ] && [ ${DO_RESTART} == "1" ] ;  then
379## Restartability tests for VORTEX
380    export TEST_NAME="LONG"
381    cd ${SETTE_DIR}
382    . ./prepare_exe_dir.sh
383    set_valid_dir
384    clean_valid_dir
385    JOB_FILE=${EXE_DIR}/run_job.sh
386    NPROC=6
387    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
388    cd ${EXE_DIR}
389    set_namelist namelist_cfg cn_exp \"VORTEX_LONG\"
390    set_namelist namelist_cfg nn_it000 1
391    set_namelist namelist_cfg nn_itend ${ITEND}
392    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
393    set_namelist namelist_cfg sn_cfctl%l_runstat .true. 
394    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
395    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
396
397    set_namelist 1_namelist_cfg cn_exp \"VORTEX_LONG\"
398    set_namelist 1_namelist_cfg nn_it000 1
399    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
400    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
401    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
402    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
403   
404    set_xio_using_server iodef.xml ${USING_MPMD}
405    cd ${SETTE_DIR}
406    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
407   
408    cd ${SETTE_DIR}
409    export TEST_NAME="SHORT"
410    . ./prepare_exe_dir.sh
411    set_valid_dir
412    clean_valid_dir
413    cd ${EXE_DIR}
414    set_namelist namelist_cfg cn_exp \"VORTEX_SHORT\"
415    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
416    set_namelist namelist_cfg nn_itend ${ITEND}
417    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
418    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
419    set_namelist namelist_cfg ln_rstart .true.
420    set_namelist namelist_cfg nn_rstctl 2
421    set_namelist namelist_cfg cn_ocerst_in \"VORTEX_LONG_${ITRST}_restart\"
422    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
423    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
424   
425    set_namelist 1_namelist_cfg cn_exp \"VORTEX_SHORT\"
426    set_namelist 1_namelist_cfg nn_it000 $(( ${ITEND} * 3 / 2 + 1 ))
427    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
428    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
429    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
430    set_namelist 1_namelist_cfg ln_rstart .true.
431    set_namelist 1_namelist_cfg nn_rstctl 2
432    set_namelist 1_namelist_cfg cn_ocerst_in \"VORTEX_LONG_${ITRST_1}_restart\"
433    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
434     
435    set_xio_using_server iodef.xml ${USING_MPMD}
436    if [ $NPROC -eq 1 ] ;  then
437        ln -sf ../LONG/VORTEX_LONG_${ITRST}_restart.nc .
438        ln -sf ../LONG/1_VORTEX_LONG_${ITRST_1}_restart.nc .
439    else
440        for (( i=1; i<=$NPROC; i++)) ; do
441            L_NPROC=$(( $i - 1 ))
442            L_NPROC=`printf "%04d\n" ${L_NPROC}`
443            ln -sf ../LONG/VORTEX_LONG_${ITRST}_restart_${L_NPROC}.nc .
444            ln -sf ../LONG/1_VORTEX_LONG_${ITRST_1}_restart_${L_NPROC}.nc .
445        done
446    fi
447    cd ${SETTE_DIR}
448    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
449    cd ${SETTE_DIR}
450    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
451fi
452
453if [ ${config} == "VORTEX" ] && [ ${DO_REPRO} == "1" ] ;  then
454
455## Reproducibility tests for VORTEX
456    export TEST_NAME="REPRO_2_3"
457    cd ${MAIN_DIR}
458    cd ${SETTE_DIR}
459    . ./prepare_exe_dir.sh
460    set_valid_dir
461    clean_valid_dir
462    JOB_FILE=${EXE_DIR}/run_job.sh
463    NPROC=6
464    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
465    cd ${EXE_DIR}
466    set_namelist namelist_cfg cn_exp \"VORTEX_23\"
467    set_namelist namelist_cfg nn_it000 1
468    set_namelist namelist_cfg nn_itend ${ITEND}
469    set_namelist namelist_cfg nn_stock ${ITEND}
470    set_namelist namelist_cfg jpni 2
471    set_namelist namelist_cfg jpnj 3
472    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
473    #if [ ${USING_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
474    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
475   
476    set_namelist 1_namelist_cfg cn_exp \"VORTEX_23\"
477    set_namelist 1_namelist_cfg nn_it000 1
478    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
479    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 ))
480    set_namelist 1_namelist_cfg jpni 2
481    set_namelist 1_namelist_cfg jpnj 3
482    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
483    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
484
485    if [ ${USING_MPMD} == "yes" ] ; then
486       set_xio_using_server iodef.xml true
487    else
488       set_xio_using_server iodef.xml false
489    fi
490    cd ${SETTE_DIR}
491    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
492    cd ${SETTE_DIR}
493    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
494
495    cd ${SETTE_DIR}
496    export TEST_NAME="REPRO_3_2"
497    . ./prepare_exe_dir.sh
498    set_valid_dir
499    clean_valid_dir
500    JOB_FILE=${EXE_DIR}/run_job.sh
501    NPROC=6
502    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
503    cd ${EXE_DIR}
504
505    set_namelist namelist_cfg cn_exp \"VORTEX_32\"
506    set_namelist namelist_cfg nn_it000 1
507    set_namelist namelist_cfg nn_itend ${ITEND}
508    set_namelist namelist_cfg nn_stock ${ITEND}
509    set_namelist namelist_cfg jpni 3
510    set_namelist namelist_cfg jpnj 2
511    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
512    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
513    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
514
515    set_namelist 1_namelist_cfg cn_exp \"VORTEX_32\"
516    set_namelist 1_namelist_cfg nn_it000 1
517    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
518    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 ))
519    set_namelist 1_namelist_cfg jpni 3
520    set_namelist 1_namelist_cfg jpnj 2
521    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
522    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
523
524    set_xio_using_server iodef.xml ${USING_MPMD}
525    cd ${SETTE_DIR}
526    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
527    cd ${SETTE_DIR}
528    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
529
530fi
531
532
533# ---------
534# ICE_AGRIF
535# ---------
536if [ ${config} == "ICE_AGRIF" ] ;  then
537    SETTE_CONFIG="ICE_AGRIF"${SETTE_STG}
538    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
539    then
540   ITEND=10
541    else
542   ITEND=200
543    fi
544    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
545    ITRST_1=$( printf "%08d" $(( ${ITEND} * 3 / 2 )) )
546    cd ${MAIN_DIR}
547    #
548    # syncronisation if target directory/file exist (not done by makenemo)
549    #
550    clean_config ICE_AGRIF ${SETTE_CONFIG} 'tests'
551    #
552    sync_config  ICE_AGRIF ${SETTE_CONFIG} 'tests'
553    #
554    # ICE_AGRIF uses linssh so remove key_qco if added by default
555    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ICE_AGRIF -j ${CMPL_CORES}  add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
556fi
557if [ ${config} == "ICE_AGRIF" ] && [ ${DO_RESTART} == "1" ] ;  then
558## Restartability tests for ICE_AGRIF
559    export TEST_NAME="LONG"
560    cd ${SETTE_DIR}
561    . ./prepare_exe_dir.sh
562    set_valid_dir
563    clean_valid_dir
564    JOB_FILE=${EXE_DIR}/run_job.sh
565    NPROC=6
566    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
567    cd ${EXE_DIR}
568    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
569    set_namelist namelist_cfg nn_it000 1
570    set_namelist namelist_cfg nn_itend ${ITEND}
571    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
572    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
573    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
574    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
575   
576    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
577    set_namelist 1_namelist_cfg nn_it000 1
578    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
579    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
580    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
581    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
582   
583    set_xio_using_server iodef.xml ${USING_MPMD}
584    cd ${SETTE_DIR}
585    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
586   
587    cd ${SETTE_DIR}
588    export TEST_NAME="SHORT"
589    . ./prepare_exe_dir.sh
590    set_valid_dir
591    clean_valid_dir
592    cd ${EXE_DIR}
593    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
594    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
595    set_namelist namelist_cfg nn_itend ${ITEND}
596    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
597    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
598    set_namelist namelist_cfg ln_rstart .true.
599    set_namelist namelist_cfg nn_rstctl 2
600    set_namelist namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_${ITRST}_restart\"
601    set_namelist namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_${ITRST}_restart_ice\"
602    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
603    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
604   
605    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
606    set_namelist 1_namelist_cfg nn_it000 $(( ${ITEND} * 3 / 2 + 1 ))
607    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
608    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
609    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
610    set_namelist 1_namelist_cfg ln_rstart .true.
611    set_namelist 1_namelist_cfg nn_rstctl 2
612    set_namelist 1_namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_${ITRST_1}_restart\"
613    set_namelist 1_namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_${ITRST_1}_restart_ice\"
614    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
615   
616   
617    set_xio_using_server iodef.xml ${USING_MPMD}
618    if [ $NPROC -eq 1 ] ;  then
619        ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart.nc .
620        ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_ice.nc .
621        ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart.nc .
622        ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_ice.nc .
623    else
624        for (( i=1; i<=$NPROC; i++)) ; do
625            L_NPROC=$(( $i - 1 ))
626            L_NPROC=`printf "%04d\n" ${L_NPROC}`
627            ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_${L_NPROC}.nc .
628            ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
629            ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_${L_NPROC}.nc .
630            ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_ice_${L_NPROC}.nc .
631        done
632    fi
633
634    cd ${SETTE_DIR}
635    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
636    cd ${SETTE_DIR}
637    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
638
639fi
640
641if [ ${config} == "ICE_AGRIF" ] && [ ${DO_REPRO} == "1" ] ;  then
642
643## Reproducibility tests for ICE_AGRIF
644    export TEST_NAME="REPRO_2_3"
645    cd ${MAIN_DIR}
646    cd ${SETTE_DIR}
647    . ./prepare_exe_dir.sh
648    set_valid_dir
649    clean_valid_dir
650    JOB_FILE=${EXE_DIR}/run_job.sh
651    NPROC=6
652    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
653    cd ${EXE_DIR}
654    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_23\"
655    set_namelist namelist_cfg nn_it000 1
656    set_namelist namelist_cfg nn_itend ${ITEND}
657    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
658    set_namelist namelist_cfg jpni 2
659    set_namelist namelist_cfg jpnj 3
660    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
661    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
662    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
663   
664    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_23\"
665    set_namelist 1_namelist_cfg nn_it000 1
666    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
667    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
668    set_namelist 1_namelist_cfg jpni 2
669    set_namelist 1_namelist_cfg jpnj 3
670    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
671    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
672
673    set_xio_using_server iodef.xml ${USING_MPMD}
674    cd ${SETTE_DIR}
675    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
676    cd ${SETTE_DIR}
677    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
678
679    cd ${SETTE_DIR}
680    export TEST_NAME="REPRO_3_2"
681    . ./prepare_exe_dir.sh
682    set_valid_dir
683    clean_valid_dir
684    JOB_FILE=${EXE_DIR}/run_job.sh
685    NPROC=6
686    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
687    cd ${EXE_DIR}
688
689    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_32\"
690    set_namelist namelist_cfg nn_it000 1
691    set_namelist namelist_cfg nn_itend ${ITEND}
692    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
693    set_namelist namelist_cfg jpni 3
694    set_namelist namelist_cfg jpnj 2
695    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
696    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
697    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
698   
699    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_32\"
700    set_namelist 1_namelist_cfg nn_it000 1
701    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
702    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
703    set_namelist 1_namelist_cfg jpni 3
704    set_namelist 1_namelist_cfg jpnj 2
705    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
706    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
707   
708    set_xio_using_server iodef.xml ${USING_MPMD}
709    cd ${SETTE_DIR}
710    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
711    cd ${SETTE_DIR}
712    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
713
714fi
715
716# ------
717# ISOMIP+
718# ------
719if [ ${config} == "ISOMIP+" ] ;  then
720    SETTE_CONFIG="ISOMIP+"${SETTE_STG}
721    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
722    then
723   ITEND=12
724    else
725   ITEND=1200
726    fi
727    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
728    cd ${MAIN_DIR}
729    #
730    # syncronisation if target directory/file exist (not done by makenemo)
731    #
732    clean_config ISOMIP+ ${SETTE_CONFIG} 'tests'
733    #
734    sync_config  ISOMIP+ ${SETTE_CONFIG} 'tests'
735    #
736    # ISOMIP+ uses ln_hpg_isf so remove key_qco if added by default
737    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ISOMIP+ -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
738fi
739if [ ${config} == "ISOMIP+" ] && [ ${DO_RESTART} == "1" ] ;  then
740## Restartability tests
741    export TEST_NAME="LONG"
742    cd ${SETTE_DIR}
743    . ./prepare_exe_dir.sh
744    set_valid_dir
745    clean_valid_dir
746    JOB_FILE=${EXE_DIR}/run_job.sh
747    NPROC=27
748    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
749    cd ${EXE_DIR}
750    set_namelist namelist_cfg cn_exp \"ISOMIP+_LONG\"
751    set_namelist namelist_cfg nn_it000 1
752    set_namelist namelist_cfg nn_itend ${ITEND}
753    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
754    set_namelist namelist_cfg jpni 9
755    set_namelist namelist_cfg jpnj 3
756    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
757    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
758    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
759    set_xio_using_server iodef.xml ${USING_MPMD}
760    cd ${SETTE_DIR}
761    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
762
763    cd ${SETTE_DIR}
764    export TEST_NAME="SHORT"
765    . ./prepare_exe_dir.sh
766    set_valid_dir
767    clean_valid_dir
768    cd ${EXE_DIR}
769    set_namelist namelist_cfg cn_exp \"ISOMIP+_SHORT\"
770    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
771    set_namelist namelist_cfg nn_itend ${ITEND}
772    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
773    set_namelist namelist_cfg ln_rstart .true.
774    set_namelist namelist_cfg nn_rstctl 2
775    set_namelist namelist_cfg jpni 9
776    set_namelist namelist_cfg jpnj 3
777    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
778    set_namelist namelist_cfg cn_ocerst_in \"ISOMIP+_LONG_${ITRST}_restart\"
779    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
780    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
781    set_xio_using_server iodef.xml ${USING_MPMD}
782    for (( i=1; i<=$NPROC; i++)) ; do
783        L_NPROC=$(( $i - 1 ))
784        L_NPROC=`printf "%04d\n" ${L_NPROC}`
785        ln -sf ../LONG/ISOMIP+_LONG_${ITRST}_restart_${L_NPROC}.nc .
786    done
787
788    cd ${SETTE_DIR}
789    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
790    cd ${SETTE_DIR}
791    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
792
793fi
794
795if [ ${config} == "ISOMIP+" ] && [ ${DO_REPRO} == "1" ] ;  then
796## Reproducibility tests
797    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
798    then
799   ITEND=12
800    else
801   ITEND=600
802    fi
803    export TEST_NAME="REPRO_9_3"
804    cd ${MAIN_DIR}
805    cd ${SETTE_DIR}
806    . ./prepare_exe_dir.sh
807    set_valid_dir
808    clean_valid_dir
809    JOB_FILE=${EXE_DIR}/run_job.sh
810    NPROC=27
811    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
812    cd ${EXE_DIR}
813    set_namelist namelist_cfg cn_exp \"ISOMIP+_93\"
814    set_namelist namelist_cfg nn_it000 1
815    set_namelist namelist_cfg nn_itend ${ITEND}
816    set_namelist namelist_cfg jpni 9
817    set_namelist namelist_cfg jpnj 3
818    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
819    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
820    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
821    set_xio_using_server iodef.xml ${USING_MPMD}
822    cd ${SETTE_DIR}
823    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
824    cd ${SETTE_DIR}
825    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
826
827    cd ${SETTE_DIR}
828    export TEST_NAME="REPRO_8_4"
829    . ./prepare_exe_dir.sh
830    set_valid_dir
831    clean_valid_dir
832    JOB_FILE=${EXE_DIR}/run_job.sh
833    NPROC=32
834    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
835    cd ${EXE_DIR}
836    set_namelist namelist_cfg cn_exp \"ISOMIP+_84\"
837    set_namelist namelist_cfg nn_it000 1
838    set_namelist namelist_cfg nn_itend ${ITEND}
839    set_namelist namelist_cfg jpni 8
840    set_namelist namelist_cfg jpnj 4
841    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
842    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
843    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
844    set_xio_using_server iodef.xml ${USING_MPMD}
845    cd ${SETTE_DIR}
846    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
847    cd ${SETTE_DIR}
848    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
849
850fi
851
852
853# ---------
854# SWG
855# ---------
856if [ ${config} == "SWG" ] && [ ${USING_QCO} == "yes" ] ;  then
857    SETTE_CONFIG="SWG"${SETTE_STG}
858    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
859    then
860   ITEND=12
861    else
862   ITEND=1728
863    fi
864    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
865    cd ${MAIN_DIR}
866    #
867    # syncronisation if target directory/file exist (not done by makenemo)
868    #
869    clean_config SWG ${SETTE_CONFIG} 'tests'
870    #
871    sync_config  SWG ${SETTE_CONFIG} 'tests'
872    #
873    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a SWG -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
874fi
875if [ ${config} == "SWG" ] && [ ${DO_RESTART} == "1" ] && [ ${USING_QCO} == "yes" ] ;  then
876## Restartability tests for SWG
877    export TEST_NAME="LONG"
878    cd ${SETTE_DIR}
879    . ./prepare_exe_dir.sh
880    set_valid_dir
881    clean_valid_dir
882    JOB_FILE=${EXE_DIR}/run_job.sh
883    NPROC=1
884    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
885    cd ${EXE_DIR}
886    set_namelist namelist_cfg cn_exp \"SWG_LONG\"
887    set_namelist namelist_cfg nn_it000 1
888    set_namelist namelist_cfg nn_itend ${ITEND}
889    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
890    set_namelist namelist_cfg sn_cfctl%l_runstat .true. 
891    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
892    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
893   
894    set_xio_using_server iodef.xml ${USING_MPMD}
895    cd ${SETTE_DIR}
896    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
897   
898    cd ${SETTE_DIR}
899    export TEST_NAME="SHORT"
900    . ./prepare_exe_dir.sh
901    set_valid_dir
902    clean_valid_dir
903    cd ${EXE_DIR}
904    set_namelist namelist_cfg cn_exp \"SWG_SHORT\"
905    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
906    set_namelist namelist_cfg nn_itend ${ITEND}
907    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
908    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
909    set_namelist namelist_cfg ln_rstart .true.
910    set_namelist namelist_cfg nn_rstctl 2
911    set_namelist namelist_cfg cn_ocerst_in \"SWG_LONG_${ITRST}_restart\"
912     
913    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
914    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
915    set_xio_using_server iodef.xml ${USING_MPMD}
916    if [ $NPROC -eq 1 ] ;  then
917        ln -sf ../LONG/SWG_LONG_${ITRST}_restart.nc .
918    else
919        for (( i=1; i<=$NPROC; i++)) ; do
920            L_NPROC=$(( $i - 1 ))
921            L_NPROC=`printf "%04d\n" ${L_NPROC}`
922            ln -sf ../LONG/SWG_LONG_${ITRST}_restart_${L_NPROC}.nc .
923        done
924    fi
925    cd ${SETTE_DIR}
926    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
927    cd ${SETTE_DIR}
928    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
929fi
930
931if [ ${config} == "SWG" ] && [ ${DO_REPRO} == "1" ] && [ ${USING_QCO} == "yes" ] ;  then
932
933## Reproducibility tests for SWG
934    export TEST_NAME="REPRO_2_3"
935    cd ${MAIN_DIR}
936    cd ${SETTE_DIR}
937    . ./prepare_exe_dir.sh
938    set_valid_dir
939    clean_valid_dir
940    JOB_FILE=${EXE_DIR}/run_job.sh
941    NPROC=6
942    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
943    cd ${EXE_DIR}
944    set_namelist namelist_cfg cn_exp \"SWG_23\"
945    set_namelist namelist_cfg nn_it000 1
946    set_namelist namelist_cfg nn_itend ${ITEND}
947    set_namelist namelist_cfg nn_stock ${ITEND}
948    set_namelist namelist_cfg jpni 2
949    set_namelist namelist_cfg jpnj 3
950    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
951    set_namelist namelist_cfg sn_cfctl%l_prtctl .true.
952   
953
954    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
955    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
956    set_xio_using_server iodef.xml ${USING_MPMD}
957    cd ${SETTE_DIR}
958    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
959    cd ${SETTE_DIR}
960    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
961
962    cd ${SETTE_DIR}
963    export TEST_NAME="REPRO_3_2"
964    . ./prepare_exe_dir.sh
965    set_valid_dir
966    clean_valid_dir
967    JOB_FILE=${EXE_DIR}/run_job.sh
968    NPROC=6
969    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
970    cd ${EXE_DIR}
971
972    set_namelist namelist_cfg cn_exp \"SWG_32\"
973    set_namelist namelist_cfg nn_it000 1
974    set_namelist namelist_cfg nn_itend ${ITEND}
975    set_namelist namelist_cfg nn_stock ${ITEND}
976    set_namelist namelist_cfg jpni 3
977    set_namelist namelist_cfg jpnj 2
978    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
979    set_namelist namelist_cfg sn_cfctl%l_prtctl .true.
980
981    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
982    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
983    set_xio_using_server iodef.xml ${USING_MPMD}
984    cd ${SETTE_DIR}
985    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
986    cd ${SETTE_DIR}
987    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
988
989fi
990
991
992
993#----
994done
995#
996# Return to SETTE_DIR (last fcm_job.sh will have moved to EXE_DIR)
997cd ${SETTE_DIR}
Note: See TracBrowser for help on using the repository browser.