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 – NEMO

source: utils/CI/sette/sette_test-cases.sh

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

#2673 . Reintegrate sette developments back onto main sette branch. This action closes #2673

  • Property svn:executable set to *
File size: 41.7 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_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
173    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
174    set_xio_using_server iodef.xml ${USING_MPMD}
175    cd ${SETTE_DIR}
176    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
177
178    cd ${SETTE_DIR}
179    export TEST_NAME="SHORT"
180    . ./prepare_exe_dir.sh
181    set_valid_dir
182    clean_valid_dir
183    cd ${EXE_DIR}
184    set_namelist namelist_cfg cn_exp \"OVF_SHORT\"
185    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
186    set_namelist namelist_cfg nn_itend ${ITEND}
187    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
188    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
189    set_namelist namelist_cfg ln_rstart .true.
190    set_namelist namelist_cfg nn_rstctl 2
191    set_namelist namelist_cfg cn_ocerst_in \"OVF_LONG_${ITRST}_restart\"
192    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
193    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
194    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
195    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
196    set_xio_using_server iodef.xml ${USING_MPMD}
197    ln -sf ../LONG/OVF_LONG_${ITRST}_restart.nc .
198
199    cd ${SETTE_DIR}
200    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
201    cd ${SETTE_DIR}
202    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
203
204
205fi
206
207if [ ${config} == "OVERFLOW" ] && [ ${DO_PHYOPTS} == "1" ] ;  then
208    ## Test for all advection, vert. coordinates, vector form, flux form: test runability and complete all time steps
209    ## Needed namelist-xxxx for every type of run tested
210    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
211    then
212   ITEND=12
213    else
214   ITEND=6120
215    fi
216    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
217
218    for file in $(echo `ls namelist_*_cfg `) ; do
219        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
220        TEST_NAME="EXP-${TEST_NAME}"
221        if [ ! -d ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ] ; then mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ; fi
222        export TEST_NAME="${TEST_NAME}"
223         ##
224        cd ${SETTE_DIR}
225        . ./prepare_exe_dir.sh
226        set_valid_dir
227        clean_valid_dir
228        JOB_FILE=${EXE_DIR}/run_job.sh
229        NPROC=1
230        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
231        cd ${EXE_DIR}
232        rm namelist_*_*_*_*
233        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
234   set_namelist namelist_cfg nn_it000 1
235   set_namelist namelist_cfg nn_itend ${ITEND}
236        set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
237        set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
238        set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
239        set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
240        set_xio_using_server iodef.xml ${USING_MPMD}
241        cd ${SETTE_DIR}
242        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
243        cd ${SETTE_DIR}
244        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
245       ##
246     done
247fi
248
249# --------------
250#  LOCK_EXCHANGE
251# --------------
252if [ ${config} == "LOCK_EXCHANGE" ] ;  then
253    SETTE_CONFIG="LOCK_EXCHANGE"${SETTE_STG}
254    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
255    then
256   ITEND=12
257    else
258   ITEND=120
259    fi
260    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
261    cd ${MAIN_DIR}
262    #
263    # syncronisation if target directory/file exist (not done by makenemo)
264    #
265    clean_config LOCK_EXCHANGE ${SETTE_CONFIG} 'tests'
266    #
267    sync_config  LOCK_EXCHANGE ${SETTE_CONFIG} 'tests'
268    #
269    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a LOCK_EXCHANGE -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
270fi
271if [ ${config} == "LOCK_EXCHANGE" ] && [ ${DO_RESTART} == "1" ] ;  then
272    ## Restartability tests for LOCK_EXCHANGE
273    export TEST_NAME="LONG"
274    cd ${SETTE_DIR}
275    . ./prepare_exe_dir.sh
276    set_valid_dir
277    clean_valid_dir
278    JOB_FILE=${EXE_DIR}/run_job.sh
279    NPROC=1
280    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
281    cd ${EXE_DIR}
282    set_namelist namelist_cfg cn_exp \"LOCK_LONG\"
283    set_namelist namelist_cfg nn_it000 1
284    set_namelist namelist_cfg nn_itend ${ITEND}
285    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
286    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
287    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
288    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
289    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
290    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
291    set_xio_using_server iodef.xml ${USING_MPMD}
292    cd ${SETTE_DIR}
293    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
294
295    cd ${SETTE_DIR}
296    export TEST_NAME="SHORT"
297    . ./prepare_exe_dir.sh
298    set_valid_dir
299    clean_valid_dir
300    cd ${EXE_DIR}
301    set_namelist namelist_cfg cn_exp \"LOCK_SHORT\"
302    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
303    set_namelist namelist_cfg nn_itend ${ITEND}
304    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
305    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
306    set_namelist namelist_cfg ln_rstart .true.
307    set_namelist namelist_cfg nn_rstctl 2
308    set_namelist namelist_cfg cn_ocerst_in \"LOCK_LONG_${ITRST}_restart\"
309    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
310    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
311    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
312    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
313    set_xio_using_server iodef.xml ${USING_MPMD}
314    ln -sf ../LONG/LOCK_LONG_${ITRST}_restart.nc .
315
316    cd ${SETTE_DIR}
317    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
318    cd ${SETTE_DIR}
319    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
320
321fi
322
323if [ ${config} == "LOCK_EXCHANGE" ] && [ ${DO_PHYOPTS} == "1" ] ;  then
324    ## Test for all advection, vector form, flux form: test runability and complete all time steps
325    ## Needed namelist-xxxx for every type of run tested
326    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
327    then
328   ITEND=12
329    else
330   ITEND=61200
331    fi
332    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
333
334    for file in $(echo `ls namelist_*_cfg `) ; do
335        echo ''
336        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
337        TEST_NAME="EXP-${TEST_NAME}"
338        `mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME}`
339        export TEST_NAME="${TEST_NAME}"
340        ## 
341        cd ${SETTE_DIR}
342        . ./prepare_exe_dir.sh
343        set_valid_dir
344        clean_valid_dir
345        JOB_FILE=${EXE_DIR}/run_job.sh
346        NPROC=1
347        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
348        cd ${EXE_DIR}
349        rm namelist_*_*_*_*
350        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
351   set_namelist namelist_cfg nn_it000 1
352        set_namelist namelist_cfg nn_itend ${ITEND}
353        set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
354        set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
355        set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
356        set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
357        set_xio_using_server iodef.xml ${USING_MPMD}
358        cd ${SETTE_DIR}
359        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
360        cd ${SETTE_DIR}
361        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
362        ##
363        echo ''
364   done
365fi
366
367# ---------
368# VORTEX
369# ---------
370if [ ${config} == "VORTEX" ] ;  then
371    SETTE_CONFIG="VORTEX"${SETTE_STG}
372    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
373    then
374   ITEND=12
375    else
376   ITEND=240
377    fi
378    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
379    ITRST_1=$( printf "%08d" $(( ${ITEND} * 3 / 2 )) )
380    cd ${MAIN_DIR}
381    #
382    # syncronisation if target directory/file exist (not done by makenemo)
383    #
384    clean_config VORTEX ${SETTE_CONFIG} 'tests'
385    #
386    sync_config  VORTEX ${SETTE_CONFIG} 'tests'
387    #
388    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a VORTEX -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
389fi
390if [ ${config} == "VORTEX" ] && [ ${DO_RESTART} == "1" ] ;  then
391## Restartability tests for VORTEX
392    export TEST_NAME="LONG"
393    cd ${SETTE_DIR}
394    . ./prepare_exe_dir.sh
395    set_valid_dir
396    clean_valid_dir
397    JOB_FILE=${EXE_DIR}/run_job.sh
398    NPROC=6
399    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
400    cd ${EXE_DIR}
401    set_namelist namelist_cfg cn_exp \"VORTEX_LONG\"
402    set_namelist namelist_cfg nn_it000 1
403    set_namelist namelist_cfg nn_itend ${ITEND}
404    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
405    set_namelist namelist_cfg sn_cfctl%l_runstat .true. 
406    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
407    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
408    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
409    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
410
411    set_namelist 1_namelist_cfg cn_exp \"VORTEX_LONG\"
412    set_namelist 1_namelist_cfg nn_it000 1
413    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
414    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
415    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
416    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
417    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
418    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
419   
420    set_xio_using_server iodef.xml ${USING_MPMD}
421    cd ${SETTE_DIR}
422    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
423   
424    cd ${SETTE_DIR}
425    export TEST_NAME="SHORT"
426    . ./prepare_exe_dir.sh
427    set_valid_dir
428    clean_valid_dir
429    cd ${EXE_DIR}
430    set_namelist namelist_cfg cn_exp \"VORTEX_SHORT\"
431    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
432    set_namelist namelist_cfg nn_itend ${ITEND}
433    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
434    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
435    set_namelist namelist_cfg ln_rstart .true.
436    set_namelist namelist_cfg nn_rstctl 2
437    set_namelist namelist_cfg cn_ocerst_in \"VORTEX_LONG_${ITRST}_restart\"
438    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
439    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
440    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
441    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
442   
443    set_namelist 1_namelist_cfg cn_exp \"VORTEX_SHORT\"
444    set_namelist 1_namelist_cfg nn_it000 $(( ${ITEND} * 3 / 2 + 1 ))
445    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
446    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
447    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
448    set_namelist 1_namelist_cfg ln_rstart .true.
449    set_namelist 1_namelist_cfg nn_rstctl 2
450    set_namelist 1_namelist_cfg cn_ocerst_in \"VORTEX_LONG_${ITRST_1}_restart\"
451    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
452    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
453    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
454     
455    set_xio_using_server iodef.xml ${USING_MPMD}
456    if [ $NPROC -eq 1 ] ;  then
457        ln -sf ../LONG/VORTEX_LONG_${ITRST}_restart.nc .
458        ln -sf ../LONG/1_VORTEX_LONG_${ITRST_1}_restart.nc .
459    else
460        for (( i=1; i<=$NPROC; i++)) ; do
461            L_NPROC=$(( $i - 1 ))
462            L_NPROC=`printf "%04d\n" ${L_NPROC}`
463            ln -sf ../LONG/VORTEX_LONG_${ITRST}_restart_${L_NPROC}.nc .
464            ln -sf ../LONG/1_VORTEX_LONG_${ITRST_1}_restart_${L_NPROC}.nc .
465        done
466    fi
467    cd ${SETTE_DIR}
468    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
469    cd ${SETTE_DIR}
470    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
471fi
472
473if [ ${config} == "VORTEX" ] && [ ${DO_REPRO} == "1" ] ;  then
474
475## Reproducibility tests for VORTEX
476    export TEST_NAME="REPRO_2_3"
477    cd ${MAIN_DIR}
478    cd ${SETTE_DIR}
479    . ./prepare_exe_dir.sh
480    set_valid_dir
481    clean_valid_dir
482    JOB_FILE=${EXE_DIR}/run_job.sh
483    NPROC=6
484    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
485    cd ${EXE_DIR}
486    set_namelist namelist_cfg cn_exp \"VORTEX_23\"
487    set_namelist namelist_cfg nn_it000 1
488    set_namelist namelist_cfg nn_itend ${ITEND}
489    set_namelist namelist_cfg nn_stock ${ITEND}
490    set_namelist namelist_cfg jpni 2
491    set_namelist namelist_cfg jpnj 3
492    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
493    #if [ ${USING_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
494    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
495    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
496    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
497   
498    set_namelist 1_namelist_cfg cn_exp \"VORTEX_23\"
499    set_namelist 1_namelist_cfg nn_it000 1
500    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
501    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 ))
502    set_namelist 1_namelist_cfg jpni 2
503    set_namelist 1_namelist_cfg jpnj 3
504    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
505    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
506    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
507    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
508
509    if [ ${USING_MPMD} == "yes" ] ; then
510       set_xio_using_server iodef.xml true
511    else
512       set_xio_using_server iodef.xml false
513    fi
514    cd ${SETTE_DIR}
515    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
516    cd ${SETTE_DIR}
517    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
518
519    cd ${SETTE_DIR}
520    export TEST_NAME="REPRO_3_2"
521    . ./prepare_exe_dir.sh
522    set_valid_dir
523    clean_valid_dir
524    JOB_FILE=${EXE_DIR}/run_job.sh
525    NPROC=6
526    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
527    cd ${EXE_DIR}
528
529    set_namelist namelist_cfg cn_exp \"VORTEX_32\"
530    set_namelist namelist_cfg nn_it000 1
531    set_namelist namelist_cfg nn_itend ${ITEND}
532    set_namelist namelist_cfg nn_stock ${ITEND}
533    set_namelist namelist_cfg jpni 3
534    set_namelist namelist_cfg jpnj 2
535    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
536    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
537    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
538    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
539    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
540
541    set_namelist 1_namelist_cfg cn_exp \"VORTEX_32\"
542    set_namelist 1_namelist_cfg nn_it000 1
543    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
544    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 ))
545    set_namelist 1_namelist_cfg jpni 3
546    set_namelist 1_namelist_cfg jpnj 2
547    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
548    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
549    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
550    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
551
552    set_xio_using_server iodef.xml ${USING_MPMD}
553    cd ${SETTE_DIR}
554    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
555    cd ${SETTE_DIR}
556    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
557
558fi
559
560
561# ---------
562# ICE_AGRIF
563# ---------
564if [ ${config} == "ICE_AGRIF" ] ;  then
565    SETTE_CONFIG="ICE_AGRIF"${SETTE_STG}
566    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
567    then
568   ITEND=10
569    else
570   ITEND=200
571    fi
572    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
573    ITRST_1=$( printf "%08d" $(( ${ITEND} * 3 / 2 )) )
574    cd ${MAIN_DIR}
575    #
576    # syncronisation if target directory/file exist (not done by makenemo)
577    #
578    clean_config ICE_AGRIF ${SETTE_CONFIG} 'tests'
579    #
580    sync_config  ICE_AGRIF ${SETTE_CONFIG} 'tests'
581    #
582    # ICE_AGRIF uses linssh so remove key_qco if added by default
583    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ICE_AGRIF -j ${CMPL_CORES}  add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
584fi
585if [ ${config} == "ICE_AGRIF" ] && [ ${DO_RESTART} == "1" ] ;  then
586## Restartability tests for ICE_AGRIF
587    export TEST_NAME="LONG"
588    cd ${SETTE_DIR}
589    . ./prepare_exe_dir.sh
590    set_valid_dir
591    clean_valid_dir
592    JOB_FILE=${EXE_DIR}/run_job.sh
593    NPROC=6
594    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
595    cd ${EXE_DIR}
596    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
597    set_namelist namelist_cfg nn_it000 1
598    set_namelist namelist_cfg nn_itend ${ITEND}
599    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
600    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
601    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
602    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
603    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
604    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
605   
606    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
607    set_namelist 1_namelist_cfg nn_it000 1
608    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
609    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
610    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
611    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
612    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
613    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
614   
615    set_xio_using_server iodef.xml ${USING_MPMD}
616    cd ${SETTE_DIR}
617    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
618   
619    cd ${SETTE_DIR}
620    export TEST_NAME="SHORT"
621    . ./prepare_exe_dir.sh
622    set_valid_dir
623    clean_valid_dir
624    cd ${EXE_DIR}
625    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
626    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
627    set_namelist namelist_cfg nn_itend ${ITEND}
628    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
629    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
630    set_namelist namelist_cfg ln_rstart .true.
631    set_namelist namelist_cfg nn_rstctl 2
632    set_namelist namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_${ITRST}_restart\"
633    set_namelist namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_${ITRST}_restart_ice\"
634    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
635    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
636    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
637    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
638   
639    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
640    set_namelist 1_namelist_cfg nn_it000 $(( ${ITEND} * 3 / 2 + 1 ))
641    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
642    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
643    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
644    set_namelist 1_namelist_cfg ln_rstart .true.
645    set_namelist 1_namelist_cfg nn_rstctl 2
646    set_namelist 1_namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_${ITRST_1}_restart\"
647    set_namelist 1_namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_${ITRST_1}_restart_ice\"
648    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
649    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
650    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
651   
652   
653    set_xio_using_server iodef.xml ${USING_MPMD}
654    if [ $NPROC -eq 1 ] ;  then
655        ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart.nc .
656        ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_ice.nc .
657        ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart.nc .
658        ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_ice.nc .
659    else
660        for (( i=1; i<=$NPROC; i++)) ; do
661            L_NPROC=$(( $i - 1 ))
662            L_NPROC=`printf "%04d\n" ${L_NPROC}`
663            ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_${L_NPROC}.nc .
664            ln -sf ../LONG/ICE_AGRIF_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
665            ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_${L_NPROC}.nc .
666            ln -sf ../LONG/1_ICE_AGRIF_LONG_${ITRST_1}_restart_ice_${L_NPROC}.nc .
667        done
668    fi
669
670    cd ${SETTE_DIR}
671    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
672    cd ${SETTE_DIR}
673    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
674
675fi
676
677if [ ${config} == "ICE_AGRIF" ] && [ ${DO_REPRO} == "1" ] ;  then
678
679## Reproducibility tests for ICE_AGRIF
680    export TEST_NAME="REPRO_2_3"
681    cd ${MAIN_DIR}
682    cd ${SETTE_DIR}
683    . ./prepare_exe_dir.sh
684    set_valid_dir
685    clean_valid_dir
686    JOB_FILE=${EXE_DIR}/run_job.sh
687    NPROC=6
688    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
689    cd ${EXE_DIR}
690    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_23\"
691    set_namelist namelist_cfg nn_it000 1
692    set_namelist namelist_cfg nn_itend ${ITEND}
693    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
694    set_namelist namelist_cfg jpni 2
695    set_namelist namelist_cfg jpnj 3
696    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
697    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
698    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
699    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
700    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
701   
702    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_23\"
703    set_namelist 1_namelist_cfg nn_it000 1
704    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
705    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
706    set_namelist 1_namelist_cfg jpni 2
707    set_namelist 1_namelist_cfg jpnj 3
708    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
709    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
710    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
711    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
712
713    set_xio_using_server iodef.xml ${USING_MPMD}
714    cd ${SETTE_DIR}
715    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
716    cd ${SETTE_DIR}
717    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
718
719    cd ${SETTE_DIR}
720    export TEST_NAME="REPRO_3_2"
721    . ./prepare_exe_dir.sh
722    set_valid_dir
723    clean_valid_dir
724    JOB_FILE=${EXE_DIR}/run_job.sh
725    NPROC=6
726    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
727    cd ${EXE_DIR}
728
729    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_32\"
730    set_namelist namelist_cfg nn_it000 1
731    set_namelist namelist_cfg nn_itend ${ITEND}
732    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
733    set_namelist namelist_cfg jpni 3
734    set_namelist namelist_cfg jpnj 2
735    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
736    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
737    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
738    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
739    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
740   
741    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_32\"
742    set_namelist 1_namelist_cfg nn_it000 1
743    set_namelist 1_namelist_cfg nn_itend $(( ${ITEND} * 3 ))
744    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} * 3 / 2 ))
745    set_namelist 1_namelist_cfg jpni 3
746    set_namelist 1_namelist_cfg jpnj 2
747    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
748    set_namelist_opt 1_namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
749    set_namelist_opt 1_namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
750    set_namelist_opt 1_namelist_cfg ln_tile ${USING_TILING} .true. .false.
751   
752    set_xio_using_server iodef.xml ${USING_MPMD}
753    cd ${SETTE_DIR}
754    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
755    cd ${SETTE_DIR}
756    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
757
758fi
759
760# ------
761# ISOMIP+
762# ------
763if [ ${config} == "ISOMIP+" ] ;  then
764    SETTE_CONFIG="ISOMIP+"${SETTE_STG}
765    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
766    then
767   ITEND=12
768    else
769   ITEND=1200
770    fi
771    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
772    cd ${MAIN_DIR}
773    #
774    # syncronisation if target directory/file exist (not done by makenemo)
775    #
776    clean_config ISOMIP+ ${SETTE_CONFIG} 'tests'
777    #
778    sync_config  ISOMIP+ ${SETTE_CONFIG} 'tests'
779    #
780    # ISOMIP+ uses ln_hpg_isf so remove key_qco if added by default
781    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ISOMIP+ -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
782fi
783if [ ${config} == "ISOMIP+" ] && [ ${DO_RESTART} == "1" ] ;  then
784## Restartability tests
785    export TEST_NAME="LONG"
786    cd ${SETTE_DIR}
787    . ./prepare_exe_dir.sh
788    set_valid_dir
789    clean_valid_dir
790    JOB_FILE=${EXE_DIR}/run_job.sh
791    NPROC=27
792    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
793    cd ${EXE_DIR}
794    set_namelist namelist_cfg cn_exp \"ISOMIP+_LONG\"
795    set_namelist namelist_cfg nn_it000 1
796    set_namelist namelist_cfg nn_itend ${ITEND}
797    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
798    set_namelist namelist_cfg jpni 9
799    set_namelist namelist_cfg jpnj 3
800    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
801    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
802    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
803    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
804    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
805    set_xio_using_server iodef.xml ${USING_MPMD}
806    cd ${SETTE_DIR}
807    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
808
809    cd ${SETTE_DIR}
810    export TEST_NAME="SHORT"
811    . ./prepare_exe_dir.sh
812    set_valid_dir
813    clean_valid_dir
814    cd ${EXE_DIR}
815    set_namelist namelist_cfg cn_exp \"ISOMIP+_SHORT\"
816    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
817    set_namelist namelist_cfg nn_itend ${ITEND}
818    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
819    set_namelist namelist_cfg ln_rstart .true.
820    set_namelist namelist_cfg nn_rstctl 2
821    set_namelist namelist_cfg jpni 9
822    set_namelist namelist_cfg jpnj 3
823    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
824    set_namelist namelist_cfg cn_ocerst_in \"ISOMIP+_LONG_${ITRST}_restart\"
825    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
826    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
827    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
828    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
829    set_xio_using_server iodef.xml ${USING_MPMD}
830    for (( i=1; i<=$NPROC; i++)) ; do
831        L_NPROC=$(( $i - 1 ))
832        L_NPROC=`printf "%04d\n" ${L_NPROC}`
833        ln -sf ../LONG/ISOMIP+_LONG_${ITRST}_restart_${L_NPROC}.nc .
834    done
835
836    cd ${SETTE_DIR}
837    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
838    cd ${SETTE_DIR}
839    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
840
841fi
842
843if [ ${config} == "ISOMIP+" ] && [ ${DO_REPRO} == "1" ] ;  then
844## Reproducibility tests
845    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
846    then
847   ITEND=12
848    else
849   ITEND=600
850    fi
851    export TEST_NAME="REPRO_9_3"
852    cd ${MAIN_DIR}
853    cd ${SETTE_DIR}
854    . ./prepare_exe_dir.sh
855    set_valid_dir
856    clean_valid_dir
857    JOB_FILE=${EXE_DIR}/run_job.sh
858    NPROC=27
859    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
860    cd ${EXE_DIR}
861    set_namelist namelist_cfg cn_exp \"ISOMIP+_93\"
862    set_namelist namelist_cfg nn_it000 1
863    set_namelist namelist_cfg nn_itend ${ITEND}
864    set_namelist namelist_cfg jpni 9
865    set_namelist namelist_cfg jpnj 3
866    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
867    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
868    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
869    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
870    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
871    set_xio_using_server iodef.xml ${USING_MPMD}
872    cd ${SETTE_DIR}
873    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
874    cd ${SETTE_DIR}
875    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
876
877    cd ${SETTE_DIR}
878    export TEST_NAME="REPRO_8_4"
879    . ./prepare_exe_dir.sh
880    set_valid_dir
881    clean_valid_dir
882    JOB_FILE=${EXE_DIR}/run_job.sh
883    NPROC=32
884    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
885    cd ${EXE_DIR}
886    set_namelist namelist_cfg cn_exp \"ISOMIP+_84\"
887    set_namelist namelist_cfg nn_it000 1
888    set_namelist namelist_cfg nn_itend ${ITEND}
889    set_namelist namelist_cfg jpni 8
890    set_namelist namelist_cfg jpnj 4
891    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
892    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
893    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
894    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
895    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
896    set_xio_using_server iodef.xml ${USING_MPMD}
897    cd ${SETTE_DIR}
898    . ./prepare_job.sh input_ISOMIP+.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
899    cd ${SETTE_DIR}
900    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
901
902fi
903
904
905# ---------
906# SWG
907# ---------
908if [ ${config} == "SWG" ] && [ ${USING_QCO} == "yes" ] ;  then
909    SETTE_CONFIG="SWG"${SETTE_STG}
910    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
911    then
912   ITEND=12
913    else
914   ITEND=1728
915    fi
916    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
917    cd ${MAIN_DIR}
918    #
919    # syncronisation if target directory/file exist (not done by makenemo)
920    #
921    clean_config SWG ${SETTE_CONFIG} 'tests'
922    #
923    sync_config  SWG ${SETTE_CONFIG} 'tests'
924    #
925    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a SWG -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
926fi
927if [ ${config} == "SWG" ] && [ ${DO_RESTART} == "1" ] && [ ${USING_QCO} == "yes" ] ;  then
928## Restartability tests for SWG
929    export TEST_NAME="LONG"
930    cd ${SETTE_DIR}
931    . ./prepare_exe_dir.sh
932    set_valid_dir
933    clean_valid_dir
934    JOB_FILE=${EXE_DIR}/run_job.sh
935    NPROC=1
936    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
937    cd ${EXE_DIR}
938    set_namelist namelist_cfg cn_exp \"SWG_LONG\"
939    set_namelist namelist_cfg nn_it000 1
940    set_namelist namelist_cfg nn_itend ${ITEND}
941    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
942    set_namelist namelist_cfg sn_cfctl%l_runstat .true. 
943    #set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
944    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
945    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
946    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
947   
948    set_xio_using_server iodef.xml ${USING_MPMD}
949    cd ${SETTE_DIR}
950    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
951   
952    cd ${SETTE_DIR}
953    export TEST_NAME="SHORT"
954    . ./prepare_exe_dir.sh
955    set_valid_dir
956    clean_valid_dir
957    cd ${EXE_DIR}
958    set_namelist namelist_cfg cn_exp \"SWG_SHORT\"
959    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
960    set_namelist namelist_cfg nn_itend ${ITEND}
961    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
962    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
963    set_namelist namelist_cfg ln_rstart .true.
964    set_namelist namelist_cfg nn_rstctl 2
965    set_namelist namelist_cfg cn_ocerst_in \"SWG_LONG_${ITRST}_restart\"
966     
967    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
968    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
969    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
970    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
971    set_xio_using_server iodef.xml ${USING_MPMD}
972    if [ $NPROC -eq 1 ] ;  then
973        ln -sf ../LONG/SWG_LONG_${ITRST}_restart.nc .
974    else
975        for (( i=1; i<=$NPROC; i++)) ; do
976            L_NPROC=$(( $i - 1 ))
977            L_NPROC=`printf "%04d\n" ${L_NPROC}`
978            ln -sf ../LONG/SWG_LONG_${ITRST}_restart_${L_NPROC}.nc .
979        done
980    fi
981    cd ${SETTE_DIR}
982    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
983    cd ${SETTE_DIR}
984    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
985fi
986
987if [ ${config} == "SWG" ] && [ ${DO_REPRO} == "1" ] && [ ${USING_QCO} == "yes" ] ;  then
988
989## Reproducibility tests for SWG
990    export TEST_NAME="REPRO_2_3"
991    cd ${MAIN_DIR}
992    cd ${SETTE_DIR}
993    . ./prepare_exe_dir.sh
994    set_valid_dir
995    clean_valid_dir
996    JOB_FILE=${EXE_DIR}/run_job.sh
997    NPROC=6
998    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
999    cd ${EXE_DIR}
1000    set_namelist namelist_cfg cn_exp \"SWG_23\"
1001    set_namelist namelist_cfg nn_it000 1
1002    set_namelist namelist_cfg nn_itend ${ITEND}
1003    set_namelist namelist_cfg nn_stock ${ITEND}
1004    set_namelist namelist_cfg jpni 2
1005    set_namelist namelist_cfg jpnj 3
1006    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1007    set_namelist namelist_cfg sn_cfctl%l_prtctl .true.
1008   
1009
1010    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
1011    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
1012    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
1013    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
1014    set_xio_using_server iodef.xml ${USING_MPMD}
1015    cd ${SETTE_DIR}
1016    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1017    cd ${SETTE_DIR}
1018    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1019
1020    cd ${SETTE_DIR}
1021    export TEST_NAME="REPRO_3_2"
1022    . ./prepare_exe_dir.sh
1023    set_valid_dir
1024    clean_valid_dir
1025    JOB_FILE=${EXE_DIR}/run_job.sh
1026    NPROC=6
1027    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1028    cd ${EXE_DIR}
1029
1030    set_namelist namelist_cfg cn_exp \"SWG_32\"
1031    set_namelist namelist_cfg nn_it000 1
1032    set_namelist namelist_cfg nn_itend ${ITEND}
1033    set_namelist namelist_cfg nn_stock ${ITEND}
1034    set_namelist namelist_cfg jpni 3
1035    set_namelist namelist_cfg jpnj 2
1036    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1037    set_namelist namelist_cfg sn_cfctl%l_prtctl .true.
1038
1039    set_namelist_opt namelist_cfg ln_timing ${USING_TIMING} .true. .false.
1040    set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
1041    set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
1042    set_namelist_opt namelist_cfg ln_tile ${USING_TILING} .true. .false.
1043    set_xio_using_server iodef.xml ${USING_MPMD}
1044    cd ${SETTE_DIR}
1045    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1046    cd ${SETTE_DIR}
1047    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1048
1049fi
1050
1051
1052
1053#----
1054done
1055#
1056# Return to SETTE_DIR (last fcm_job.sh will have moved to EXE_DIR)
1057cd ${SETTE_DIR}
Note: See TracBrowser for help on using the repository browser.