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

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

Branch: sette_ticket2673. Added missing export for NEMO_VALID. Also tidied up scripts with new set_namelist_opt function and adapting set_xio_using_server function to accept yes/no as well as true/false

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