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 @ 14873

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

Branch: sette_ticket2673. Improved functionality: added -r (no report) option to disable running sette_rpt.sh at the end of sette.sh (allows chaining of sette.sh invocations with different arguments). Allowed SAS and AGRIF to be equivalently requested as ORCA2_SAS_ICE or AGRIF_DEMO (saves having to remember which are abbreviated). Sorted out the logic so that RESTART is no longer a mandatory test (allows REPRO without RESTART but, also, importantly, allows COMPILE as a test which will compile but not attempt to run - should mean fewer excuses for not running SETTE)

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