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

source: utils/CI/sette_ticket2304/sette_test-cases.sh @ 12289

Last change on this file since 12289 was 12289, checked in by mathiot, 4 years ago

as suggested by Simon, instead of stopping sette if namelist group is missing, we now add it at the end of the namelist + rm useless line in sette_list_avail_rev.sh + add syncronisation of MY_SRC, namelist_cfg, xml, cppkey files between REF and _ST (ticket #2304)

  • Property svn:executable set to *
File size: 31.8 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# USING_XIOS        : flag to control the activation of key_iomput
34#                      "yes" to compile using key_iomput and link to the external XIOS library
35#                      "no"  to compile without key_iomput and link to the old IOIPSL library
36# USING_MPMD        : flag to control the use of stand-alone IO servers
37#                     requires USING_XIOS="yes"
38#                      "yes" to run in MPMD (detached) mode with stand-alone IO servers
39#                      "no"  to run in SPMD (attached) mode without separate IO servers
40# NUM_XIOSERVERS    : number of stand-alone IO servers to employ
41#                     set to zero if USING_MPMD="no"
42#
43# Principal script is sette_test-cases.sh, that calls
44#
45#  makenemo  : to create successive exectuables in ${CONFIG_NAME}/BLD/bin/nemo.exe
46#              and links to nemo in ${CONFIG_NAME}/EXP00)
47#
48#  param.cfg : sets and loads following directories:
49#
50#   FORCING_DIR         : is the directory for forcing files (tarfile)
51#   INPUT_DIR           : is the directory for input files storing
52#   TMPDIR              : is the temporary directory (if needed)
53#   NEMO_VALIDATION_DIR : is the validation directory
54#
55#   (NOTE: this file is the same for all configrations to be tested with sette_test-cases.sh)
56#
57#   all_functions.sh : loads functions used by sette (note: new functions can be added here)
58#   set_namelist     : function declared in all_functions that sets namelist parameters
59#   post_test_tidyup : creates validation storage directory and copies required output files
60#                      (run.stat and ocean.output) in it after execution of test.
61#
62#  VALIDATION tree is:
63#
64#   NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE)
65#
66#  prepare_exe_dir.sh : defines and creates directory where the test is executed
67#                       execution directory takes name of TEST_NAME defined for every test
68#                       in sette_test-cases.sh. (each test in executed in its own directory)
69#
70#  set_valid_dir       : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
71#
72#  clean_valid_dir    : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
73#                       ( not doing it could lead to false positive )
74#
75#  prepare_job.sh     : to generate the script run_job.sh
76#
77#  fcm_job.sh         : run in batch (INTERACT_FLAG="no") or interactive (INTERACT_FLAG="yes")
78#                        see sette_test-cases.sh and BATCH_TEMPLATE directory
79#
80#  NOTE: jobs requiring initial or forcing data need to have an input_CONFIG.cfg in which
81#        can be found paths to the input tar file)
82#  NOTE: if job is not launched for any reason you have the executable ready in ${EXE_DIR}
83#        directory
84#  NOTE: the changed namelists are left in ${EXE_DIR} directory whereas original namelists
85#        remain in ${NEW_CONF}/EXP00
86#
87#  NOTE: a log file, output.sette, is created in ${SETTE_DIR} with the echoes of
88#        executed commands
89#
90#  NOTE: if sette_test-cases.sh is stopped in output.sette there is written the last command
91#        executed by sette_test-cases.sh
92#
93# example use: ./sette_test-cases.sh
94#########################################################################################
95#
96# LOAD param value
97SETTE_DIR=$(cd $(dirname "$0"); pwd)
98MAIN_DIR=$(dirname $SETTE_DIR)
99. ./param.cfg
100
101export BATCH_COMMAND_PAR=${BATCH_CMD}
102export BATCH_COMMAND_SEQ=${BATCH_CMD}
103export INTERACT_FLAG="no"
104export MPIRUN_FLAG="yes"
105#
106export DEL_KEYS="key_iomput"
107if [ ${USING_XIOS} == "yes" ] 
108 then
109   export DEL_KEYS=""
110fi
111#
112export ADD_KEYS=""
113if [ ${ADD_NOSIGNEDZERO} == "yes" ]
114 then
115   export ADD_KEYS="key_nosignedzero"
116fi
117#
118# Settings which control the use of stand alone servers (only relevant if using xios)
119#
120export NUM_XIOSERVERS=4
121export JOB_PREFIX=${JOB_PREFIX_MPMD}
122#
123if [ ${USING_MPMD} == "no" ] 
124 then
125   export NUM_XIOSERVERS=0
126   export JOB_PREFIX=${JOB_PREFIX_NOMPMD}
127fi
128#
129#
130if [ ${USING_MPMD} == "yes" ] && [ ${USING_XIOS} == "no" ]
131 then
132   echo "Incompatible choices. MPMD mode requires the XIOS server"
133   exit
134fi
135
136# Directory to run the tests
137CONFIG_DIR0=${MAIN_DIR}/cfgs
138TOOLS_DIR=${MAIN_DIR}/tools
139
140CMP_NAM=${1:-$COMPILER}
141# Copy job_batch_COMPILER file for specific compiler into job_batch_template
142cd ${SETTE_DIR}
143cp BATCH_TEMPLATE/${JOB_PREFIX}-${COMPILER} job_batch_template || exit
144# Description of configuration tested:
145# OVERFLOW       : TEST s-coordinates : (tracers) Advection schemes: FCT2, FCT4, ubs
146#                                     & (dynamics) advection schemes: flux form (ubs, centered), vector form (een)
147#                       zps-coordinates : (tracers) Advection schemes: FCT2, FCT4, ubs
148#                                     & (dynamics) advection schemes: flux form (ubs, centered), vector form (een, and een + Hollingsworth correction)
149# LOCK_EXCHANGE  :
150# VORTEX         :
151# ICE_AGRIF      :
152# ISOMIP         :
153# WAD
154
155
156for config in ${TEST_CONFIGS}
157do
158
159# ---------
160#  OVERFLOW
161# ---------
162if [ ${config} == "OVERFLOW" ] ;  then
163    ## Restartability tests for OVERFLOW
164    export TEST_NAME="LONG"
165    cd ${MAIN_DIR}
166    #
167    # syncronisation if target directory/file exist (not done by makenemo)
168    . ${SETTE_DIR}/all_functions.sh
169    sync_mysrc  OVERFLOW OVERFLOW_ST
170    sync_expcfg OVERFLOW OVERFLOW_ST
171    sync_cppcfg OVERFLOW OVERFLOW_ST
172    #
173    . ./makenemo -m ${CMP_NAM} -n OVERFLOW_ST -a OVERFLOW -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
174    cd ${SETTE_DIR}
175    . ./param.cfg
176    . ./all_functions.sh
177    . ./prepare_exe_dir.sh
178    set_valid_dir
179    clean_valid_dir
180    JOB_FILE=${EXE_DIR}/run_job.sh
181    NPROC=1
182    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
183    cd ${EXE_DIR} 
184    set_namelist namelist_cfg cn_exp \"OVF_LONG\"
185    set_namelist namelist_cfg nn_it000 1
186    set_namelist namelist_cfg nn_itend 120
187    set_namelist namelist_cfg nn_stock 60
188    set_namelist namelist_cfg ln_ctl .false.
189    set_namelist namelist_cfg sn_cfctl%l_config .true.
190    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
191    if [ ${USING_MPMD} == "yes" ] ; then
192       set_xio_using_server iodef.xml true
193    else
194       set_xio_using_server iodef.xml false
195    fi
196    cd ${SETTE_DIR}
197    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
198
199    cd ${SETTE_DIR}
200    export TEST_NAME="SHORT"
201    . ./prepare_exe_dir.sh
202    set_valid_dir
203    clean_valid_dir
204    cd ${EXE_DIR}
205    set_namelist namelist_cfg cn_exp \"OVF_SHORT\"
206    set_namelist namelist_cfg nn_it000 61
207    set_namelist namelist_cfg nn_itend 120
208    set_namelist namelist_cfg nn_stock 60
209    set_namelist namelist_cfg ln_ctl .false.
210    set_namelist namelist_cfg sn_cfctl%l_config .true.
211    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
212    set_namelist namelist_cfg ln_rstart .true.
213    set_namelist namelist_cfg nn_rstctl 2
214    set_namelist namelist_cfg cn_ocerst_in \"OVF_LONG_00000060_restart\"
215    if [ ${USING_MPMD} == "yes" ] ; then
216       set_xio_using_server iodef.xml true
217    else
218       set_xio_using_server iodef.xml false
219    fi
220    ln -sf ../LONG/OVF_LONG_00000060_restart.nc .
221
222    cd ${SETTE_DIR}
223    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
224    cd ${SETTE_DIR}
225    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
226
227
228    ## Test for all advection, vert. coordinates, vector form, flux form: test runability and complete all time steps
229    ## Needed namelist-xxxx for every type of run tested
230    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
231
232    for file in $(echo `ls namelist_*_cfg `) ; do
233        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
234        TEST_NAME="EXP-${TEST_NAME}"
235        if [ ! -d ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ] ; then mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME} ; fi
236        export TEST_NAME="${TEST_NAME}"
237         ##
238        cd ${SETTE_DIR}
239        . ./param.cfg
240        . ./all_functions.sh
241        . ./prepare_exe_dir.sh
242        set_valid_dir
243        clean_valid_dir
244        JOB_FILE=${EXE_DIR}/run_job.sh
245        NPROC=1
246        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
247        cd ${EXE_DIR}
248        rm namelist_*_*_*_*
249        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
250        if [ ${USING_MPMD} == "yes" ] ; then
251           set_xio_using_server iodef.xml true
252        else
253           set_xio_using_server iodef.xml false
254        fi
255        cd ${SETTE_DIR}
256        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
257        cd ${SETTE_DIR}
258        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
259       ##
260     done
261fi
262
263# --------------
264#  LOCK_EXCHANGE
265# --------------
266if [ ${config} == "LOCK_EXCHANGE" ] ;  then
267    ## Restartability tests for LOCK_EXCHANGE
268    export TEST_NAME="LONG"
269    cd ${MAIN_DIR}
270    #
271    # syncronisation if target directory/file exist (not done by makenemo)
272    . ${SETTE_DIR}/all_functions.sh
273    sync_mysrc  LOCK_EXCHANGE LOCK_EXCHANGE_ST
274    sync_expcfg LOCK_EXCHANGE LOCK_EXCHANGE_ST
275    sync_cppcfg LOCK_EXCHANGE LOCK_EXCHANGE_ST
276    #
277    . ./makenemo -m ${CMP_NAM} -n LOCK_EXCHANGE_ST -a LOCK_EXCHANGE -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
278    cd ${SETTE_DIR}
279    . ./param.cfg
280    . ./all_functions.sh
281    . ./prepare_exe_dir.sh
282    set_valid_dir
283    clean_valid_dir
284    JOB_FILE=${EXE_DIR}/run_job.sh
285    NPROC=1
286    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
287    cd ${EXE_DIR}
288    set_namelist namelist_cfg cn_exp \"LOCK_LONG\"
289    set_namelist namelist_cfg nn_it000 1
290    set_namelist namelist_cfg nn_stock 60
291    set_namelist namelist_cfg ln_ctl .false.
292    set_namelist namelist_cfg sn_cfctl%l_config .true.
293    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
294    set_namelist namelist_cfg nn_itend 120
295    if [ ${USING_MPMD} == "yes" ] ; then
296       set_xio_using_server iodef.xml true
297    else
298       set_xio_using_server iodef.xml false
299    fi
300    cd ${SETTE_DIR}
301    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
302
303    cd ${SETTE_DIR}
304    export TEST_NAME="SHORT"
305    . ./prepare_exe_dir.sh
306    set_valid_dir
307    clean_valid_dir
308    cd ${EXE_DIR}
309    set_namelist namelist_cfg cn_exp \"LOCK_SHORT\"
310    set_namelist namelist_cfg nn_it000 61
311    set_namelist namelist_cfg nn_itend 120
312    set_namelist namelist_cfg nn_stock 60
313    set_namelist namelist_cfg ln_ctl .false.
314    set_namelist namelist_cfg sn_cfctl%l_config .true.
315    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
316    set_namelist namelist_cfg ln_rstart .true.
317    set_namelist namelist_cfg nn_rstctl 2
318    set_namelist namelist_cfg cn_ocerst_in \"LOCK_LONG_00000060_restart\"
319    if [ ${USING_MPMD} == "yes" ] ; then
320       set_xio_using_server iodef.xml true
321    else
322       set_xio_using_server iodef.xml false
323    fi
324    ln -sf ../LONG/LOCK_LONG_00000060_restart.nc .
325
326    cd ${SETTE_DIR}
327    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
328    cd ${SETTE_DIR}
329    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
330
331    ## Test for all advection, vector form, flux form: test runability and complete all time steps
332    ## Needed namelist-xxxx for every type of run tested
333    cd ${CONFIG_DIR}/${NEW_CONF}/EXP00
334
335    for file in $(echo `ls namelist_*_cfg `) ; do
336        echo ''
337        TEST_NAME=`echo $file | sed -e "s/namelist_//" | sed -e "s/_cfg//"`
338        TEST_NAME="EXP-${TEST_NAME}"
339        `mkdir ${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME}`
340        export TEST_NAME="${TEST_NAME}"
341        ## 
342        cd ${SETTE_DIR}
343        . ./param.cfg
344        . ./all_functions.sh
345        . ./prepare_exe_dir.sh
346        set_valid_dir
347        clean_valid_dir
348        JOB_FILE=${EXE_DIR}/run_job.sh
349        NPROC=1
350        if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
351        cd ${EXE_DIR}
352        rm namelist_*_*_*_*
353        cp -pL ${CONFIG_DIR}/${NEW_CONF}/EXP00/$file namelist_cfg
354        if [ ${USING_MPMD} == "yes" ] ; then
355           set_xio_using_server iodef.xml true
356        else
357           set_xio_using_server iodef.xml false
358        fi
359        cd ${SETTE_DIR}
360        . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
361        cd ${SETTE_DIR}
362        . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
363        ##
364        echo ''
365   done
366fi
367
368# ---------
369# VORTEX
370# ---------
371if [ ${config} == "VORTEX" ] ;  then 
372## Restartability tests for VORTEX
373    export TEST_NAME="LONG"
374    cd ${MAIN_DIR}
375    #
376    # syncronisation if target directory/file exist (not done by makenemo)
377    . ${SETTE_DIR}/all_functions.sh
378    sync_mysrc  VORTEX VORTEX_ST
379    sync_expcfg VORTEX VORTEX_ST
380    sync_cppcfg VORTEX VORTEX_ST
381    #
382    . ./makenemo -m ${CMP_NAM} -n VORTEX_ST -a VORTEX -j 8  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
383    cd ${SETTE_DIR}
384    . ./param.cfg
385    . ./all_functions.sh
386    . ./prepare_exe_dir.sh
387    set_valid_dir
388    clean_valid_dir
389    JOB_FILE=${EXE_DIR}/run_job.sh
390    NPROC=6
391    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
392    cd ${EXE_DIR}
393    set_namelist namelist_cfg cn_exp \"VORTEX_LONG\"
394    set_namelist namelist_cfg nn_it000 1
395    set_namelist namelist_cfg nn_itend 240
396    set_namelist namelist_cfg nn_stock 120
397    set_namelist namelist_cfg ln_ctl .false.
398    set_namelist namelist_cfg sn_cfctl%l_config .true.
399    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
400
401    set_namelist 1_namelist_cfg cn_exp \"VORTEX_LONG\"
402    set_namelist 1_namelist_cfg nn_it000 1
403    set_namelist 1_namelist_cfg nn_itend 720
404    set_namelist 1_namelist_cfg nn_stock 360
405    set_namelist 1_namelist_cfg ln_ctl .false.
406    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
407    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
408   
409    if [ ${USING_MPMD} == "yes" ] ; then
410        set_xio_using_server iodef.xml true
411    else
412        set_xio_using_server iodef.xml false
413    fi
414    cd ${SETTE_DIR}
415    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
416   
417    cd ${SETTE_DIR}
418    export TEST_NAME="SHORT"
419    . ./prepare_exe_dir.sh
420    set_valid_dir
421    clean_valid_dir
422    cd ${EXE_DIR}
423    set_namelist namelist_cfg cn_exp \"VORTEX_SHORT\"
424    set_namelist namelist_cfg nn_it000 121
425    set_namelist namelist_cfg nn_itend 240
426    set_namelist namelist_cfg nn_stock 120
427    set_namelist namelist_cfg ln_ctl .false.
428    set_namelist namelist_cfg sn_cfctl%l_config .true.
429    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
430    set_namelist namelist_cfg ln_rstart .true.
431    set_namelist namelist_cfg nn_rstctl 2
432    set_namelist namelist_cfg cn_ocerst_in \"VORTEX_LONG_00000120_restart\"
433   
434    set_namelist 1_namelist_cfg cn_exp \"VORTEX_SHORT\"
435    set_namelist 1_namelist_cfg nn_it000 361
436    set_namelist 1_namelist_cfg nn_itend 720
437    set_namelist 1_namelist_cfg ln_ctl .false.
438    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
439    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
440    set_namelist 1_namelist_cfg nn_stock 360
441    set_namelist 1_namelist_cfg ln_rstart .true.
442    set_namelist 1_namelist_cfg nn_rstctl 2
443    set_namelist 1_namelist_cfg cn_ocerst_in \"VORTEX_LONG_00000360_restart\"
444     
445    if [ ${USING_MPMD} == "yes" ] ; then
446        set_xio_using_server iodef.xml true
447    else
448        set_xio_using_server iodef.xml false
449    fi
450    if [ $NPROC -eq 1 ] ;  then
451        ln -sf ../LONG/VORTEX_LONG_00000120_restart.nc .
452        ln -sf ../LONG/1_VORTEX_LONG_00000360_restart.nc .
453    else
454        for (( i=1; i<=$NPROC; i++)) ; do
455            L_NPROC=$(( $i - 1 ))
456            L_NPROC=`printf "%04d\n" ${L_NPROC}`
457            ln -sf ../LONG/VORTEX_LONG_00000120_restart_${L_NPROC}.nc .
458            ln -sf ../LONG/1_VORTEX_LONG_00000360_restart_${L_NPROC}.nc .
459        done
460    fi
461    cd ${SETTE_DIR}
462    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
463    cd ${SETTE_DIR}
464    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
465
466## Reproducibility tests for VORTEX
467    export TEST_NAME="REPRO_2_3"
468    cd ${MAIN_DIR}
469    cd ${SETTE_DIR}
470    . ./param.cfg
471    . ./all_functions.sh
472    . ./prepare_exe_dir.sh
473    set_valid_dir
474    clean_valid_dir
475    JOB_FILE=${EXE_DIR}/run_job.sh
476    NPROC=6
477    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
478    cd ${EXE_DIR}
479    set_namelist namelist_cfg cn_exp \"VORTEX_23\"
480    set_namelist namelist_cfg nn_it000 1
481    set_namelist namelist_cfg nn_itend 240
482    set_namelist namelist_cfg nn_stock 120
483    set_namelist namelist_cfg jpni 2
484    set_namelist namelist_cfg jpnj 3
485    set_namelist namelist_cfg ln_ctl .false.
486    set_namelist namelist_cfg sn_cfctl%l_config .true.
487    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
488   
489    set_namelist 1_namelist_cfg cn_exp \"VORTEX_23\"
490    set_namelist 1_namelist_cfg nn_it000 1
491    set_namelist 1_namelist_cfg nn_itend 720
492    set_namelist 1_namelist_cfg nn_stock 360
493    set_namelist 1_namelist_cfg jpni 2
494    set_namelist 1_namelist_cfg jpnj 3
495    set_namelist 1_namelist_cfg ln_ctl .false.
496    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
497    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
498
499    if [ ${USING_MPMD} == "yes" ] ; then
500       set_xio_using_server iodef.xml true
501    else
502       set_xio_using_server iodef.xml false
503    fi
504    cd ${SETTE_DIR}
505    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
506    cd ${SETTE_DIR}
507    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
508
509    cd ${SETTE_DIR}
510    export TEST_NAME="REPRO_3_2"
511    . ./prepare_exe_dir.sh
512    set_valid_dir
513    clean_valid_dir
514    JOB_FILE=${EXE_DIR}/run_job.sh
515    NPROC=6
516    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
517    cd ${EXE_DIR}
518
519    set_namelist namelist_cfg cn_exp \"VORTEX_32\"
520    set_namelist namelist_cfg nn_it000 1
521    set_namelist namelist_cfg nn_itend 240
522    set_namelist namelist_cfg nn_stock 120
523    set_namelist namelist_cfg jpni 3
524    set_namelist namelist_cfg jpnj 2
525    set_namelist namelist_cfg ln_ctl .false.
526    set_namelist namelist_cfg sn_cfctl%l_config .true.
527    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
528
529    set_namelist 1_namelist_cfg cn_exp \"VORTEX_32\"
530    set_namelist 1_namelist_cfg nn_it000 1
531    set_namelist 1_namelist_cfg nn_itend 720
532    set_namelist 1_namelist_cfg nn_stock 360
533    set_namelist 1_namelist_cfg jpni 3
534    set_namelist 1_namelist_cfg jpnj 2
535    set_namelist 1_namelist_cfg ln_ctl .false.
536    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
537    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
538
539    if [ ${USING_MPMD} == "yes" ] ; then
540       set_xio_using_server iodef.xml true
541    else
542       set_xio_using_server iodef.xml false
543    fi
544    cd ${SETTE_DIR}
545    . ./prepare_job.sh input_EMPTY.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
546    cd ${SETTE_DIR}
547    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
548
549fi
550
551
552# ---------
553# ICE_AGRIF
554# ---------
555if [ ${config} == "ICE_AGRIF" ] ;  then 
556## Restartability tests for ICE_AGRIF
557    export TEST_NAME="LONG"
558    cd ${MAIN_DIR}
559    #
560    # syncronisation if target directory/file exist (not done by makenemo)
561    . ${SETTE_DIR}/all_functions.sh
562    sync_mysrc  ICE_AGRIF ICE_AGRIF_ST
563    sync_expcfg ICE_AGRIF ICE_AGRIF_ST
564    sync_cppcfg ICE_AGRIF ICE_AGRIF_ST
565    #
566    . ./makenemo -m ${CMP_NAM} -n ICE_AGRIF_ST -a ICE_AGRIF -j 8  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
567    cd ${SETTE_DIR}
568    . ./param.cfg
569    . ./all_functions.sh
570    . ./prepare_exe_dir.sh
571    set_valid_dir
572    clean_valid_dir
573    JOB_FILE=${EXE_DIR}/run_job.sh
574    NPROC=6
575    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
576    cd ${EXE_DIR}
577    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
578    set_namelist namelist_cfg nn_it000 1
579    set_namelist namelist_cfg nn_itend 200
580    set_namelist namelist_cfg ln_ctl .false.
581    set_namelist namelist_cfg sn_cfctl%l_config .true.
582    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
583    set_namelist namelist_cfg nn_stock 100
584   
585    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_LONG\"
586    set_namelist 1_namelist_cfg nn_it000 1
587    set_namelist 1_namelist_cfg nn_itend 600
588    set_namelist 1_namelist_cfg ln_ctl .false.
589    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
590    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
591    set_namelist 1_namelist_cfg nn_stock 300
592   
593    if [ ${USING_MPMD} == "yes" ] ; then
594        set_xio_using_server iodef.xml true
595    else
596        set_xio_using_server iodef.xml false
597    fi
598    cd ${SETTE_DIR}
599    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
600   
601    cd ${SETTE_DIR}
602    export TEST_NAME="SHORT"
603    . ./prepare_exe_dir.sh
604    set_valid_dir
605    clean_valid_dir
606    cd ${EXE_DIR}
607    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
608    set_namelist namelist_cfg nn_it000 101
609    set_namelist namelist_cfg nn_itend 200
610    set_namelist namelist_cfg ln_ctl .false.
611    set_namelist namelist_cfg sn_cfctl%l_config .true.
612    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
613    set_namelist namelist_cfg nn_stock 100
614    set_namelist namelist_cfg ln_rstart .true.
615    set_namelist namelist_cfg nn_rstctl 2
616    set_namelist namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_00000100_restart\"
617    set_namelist namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_00000100_restart_ice\"
618   
619    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_SHORT\"
620    set_namelist 1_namelist_cfg nn_it000 301
621    set_namelist 1_namelist_cfg nn_itend 600
622    set_namelist 1_namelist_cfg ln_ctl .false.
623    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
624    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
625    set_namelist 1_namelist_cfg nn_stock 300
626    set_namelist 1_namelist_cfg ln_rstart .true.
627    set_namelist 1_namelist_cfg nn_rstctl 2
628    set_namelist 1_namelist_cfg cn_ocerst_in \"ICE_AGRIF_LONG_00000300_restart\"
629    set_namelist 1_namelist_ice_cfg cn_icerst_in \"ICE_AGRIF_LONG_00000300_restart_ice\"
630   
631   
632    if [ ${USING_MPMD} == "yes" ] ; then
633        set_xio_using_server iodef.xml true
634    else
635        set_xio_using_server iodef.xml false
636    fi
637    if [ $NPROC -eq 1 ] ;  then
638        ln -sf ../LONG/ICE_AGRIF_LONG_00000100_restart.nc .
639        ln -sf ../LONG/ICE_AGRIF_LONG_00000100_restart_ice.nc .
640        ln -sf ../LONG/1_ICE_AGRIF_LONG_00000300_restart.nc .
641        ln -sf ../LONG/1_ICE_AGRIF_LONG_00000300_restart_ice.nc .
642    else
643        for (( i=1; i<=$NPROC; i++)) ; do
644            L_NPROC=$(( $i - 1 ))
645            L_NPROC=`printf "%04d\n" ${L_NPROC}`
646            ln -sf ../LONG/ICE_AGRIF_LONG_00000100_restart_${L_NPROC}.nc .
647            ln -sf ../LONG/ICE_AGRIF_LONG_00000100_restart_ice_${L_NPROC}.nc .
648            ln -sf ../LONG/1_ICE_AGRIF_LONG_00000300_restart_${L_NPROC}.nc .
649            ln -sf ../LONG/1_ICE_AGRIF_LONG_00000300_restart_ice_${L_NPROC}.nc .
650        done
651    fi
652
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
659## Reproducibility tests for ICE_AGRIF
660    export TEST_NAME="REPRO_2_3"
661    cd ${MAIN_DIR}
662    cd ${SETTE_DIR}
663    . ./param.cfg
664    . ./all_functions.sh
665    . ./prepare_exe_dir.sh
666    set_valid_dir
667    clean_valid_dir
668    JOB_FILE=${EXE_DIR}/run_job.sh
669    NPROC=6
670    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
671    cd ${EXE_DIR}
672    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_23\"
673    set_namelist namelist_cfg nn_it000 1
674    set_namelist namelist_cfg nn_itend 200
675    set_namelist namelist_cfg nn_stock 100
676    set_namelist namelist_cfg jpni 2
677    set_namelist namelist_cfg jpnj 3
678    set_namelist namelist_cfg ln_ctl .false.
679    set_namelist namelist_cfg sn_cfctl%l_config .true.
680    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
681   
682    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_23\"
683    set_namelist 1_namelist_cfg nn_it000 1
684    set_namelist 1_namelist_cfg nn_itend 600
685    set_namelist 1_namelist_cfg nn_stock 300
686    set_namelist 1_namelist_cfg jpni 2
687    set_namelist 1_namelist_cfg jpnj 3
688    set_namelist 1_namelist_cfg ln_ctl .false.
689    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
690    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
691
692    if [ ${USING_MPMD} == "yes" ] ; then
693       set_xio_using_server iodef.xml true
694    else
695       set_xio_using_server iodef.xml false
696    fi
697    cd ${SETTE_DIR}
698    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
699    cd ${SETTE_DIR}
700    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
701
702    cd ${SETTE_DIR}
703    export TEST_NAME="REPRO_3_2"
704    . ./prepare_exe_dir.sh
705    set_valid_dir
706    clean_valid_dir
707    JOB_FILE=${EXE_DIR}/run_job.sh
708    NPROC=6
709    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
710    cd ${EXE_DIR}
711
712    set_namelist namelist_cfg cn_exp \"ICE_AGRIF_32\"
713    set_namelist namelist_cfg nn_it000 1
714    set_namelist namelist_cfg nn_itend 200
715    set_namelist namelist_cfg nn_stock 100
716    set_namelist namelist_cfg jpni 3
717    set_namelist namelist_cfg jpnj 2
718    set_namelist namelist_cfg ln_ctl .false.
719    set_namelist namelist_cfg sn_cfctl%l_config .true.
720    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
721   
722    set_namelist 1_namelist_cfg cn_exp \"ICE_AGRIF_32\"
723    set_namelist 1_namelist_cfg nn_it000 1
724    set_namelist 1_namelist_cfg nn_itend 600
725    set_namelist 1_namelist_cfg nn_stock 300
726    set_namelist 1_namelist_cfg jpni 3
727    set_namelist 1_namelist_cfg jpnj 2
728    set_namelist 1_namelist_cfg ln_ctl .false.
729    set_namelist 1_namelist_cfg sn_cfctl%l_config .true.
730    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
731   
732    if [ ${USING_MPMD} == "yes" ] ; then
733       set_xio_using_server iodef.xml true
734    else
735       set_xio_using_server iodef.xml false
736    fi
737    cd ${SETTE_DIR}
738    . ./prepare_job.sh input_ICE_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
739    cd ${SETTE_DIR}
740    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
741
742fi
743
744# ------
745# ISOMIP
746# ------
747if [ ${config} == "ISOMIP" ] ;  then
748## Restartability tests
749    export TEST_NAME="LONG"
750    cd ${MAIN_DIR}
751    #
752    # syncronisation if target directory/file exist (not done by makenemo)
753    . ${SETTE_DIR}/all_functions.sh
754    sync_mysrc  ISOMIP ISOMIP_ST
755    sync_expcfg ISOMIP ISOMIP_ST
756    sync_cppcfg ISOMIP ISOMIP_ST
757    #
758    . ./makenemo -m ${CMP_NAM} -n ISOMIP_ST -a ISOMIP -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
759    cd ${SETTE_DIR}
760    . ./param.cfg
761    . ./all_functions.sh
762    . ./prepare_exe_dir.sh
763    set_valid_dir
764    clean_valid_dir
765    JOB_FILE=${EXE_DIR}/run_job.sh
766    NPROC=15
767    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
768    cd ${EXE_DIR}
769    set_namelist namelist_cfg cn_exp \"ISOMIP_LONG\"
770    set_namelist namelist_cfg nn_it000 1
771    set_namelist namelist_cfg nn_itend 96
772    set_namelist namelist_cfg nn_stock 48
773    set_namelist namelist_cfg jpni 5
774    set_namelist namelist_cfg jpnj 3
775    set_namelist namelist_cfg ln_ctl .false.
776    set_namelist namelist_cfg sn_cfctl%l_config .true.
777    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
778    if [ ${USING_MPMD} == "yes" ] ; then
779       set_xio_using_server iodef.xml true
780    else
781       set_xio_using_server iodef.xml false
782    fi
783    cd ${SETTE_DIR}
784    . ./prepare_job.sh input_ISOMIP.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
785
786    cd ${SETTE_DIR}
787    export TEST_NAME="SHORT"
788    . ./prepare_exe_dir.sh
789    set_valid_dir
790    clean_valid_dir
791    cd ${EXE_DIR}
792    set_namelist namelist_cfg cn_exp \"ISOMIP_SHORT\"
793    set_namelist namelist_cfg nn_it000 49
794    set_namelist namelist_cfg nn_itend 96
795    set_namelist namelist_cfg nn_stock 48
796    set_namelist namelist_cfg ln_rstart .true.
797    set_namelist namelist_cfg nn_rstctl 2
798    set_namelist namelist_cfg jpni 5
799    set_namelist namelist_cfg jpnj 3
800    set_namelist namelist_cfg ln_ctl .false.
801    set_namelist namelist_cfg sn_cfctl%l_config .true.
802    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
803    set_namelist namelist_cfg cn_ocerst_in \"ISOMIP_LONG_00000048_restart\"
804    if [ ${USING_MPMD} == "yes" ] ; then
805       set_xio_using_server iodef.xml true
806    else
807       set_xio_using_server iodef.xml false
808    fi
809    for (( i=1; i<=$NPROC; i++)) ; do
810        L_NPROC=$(( $i - 1 ))
811        L_NPROC=`printf "%04d\n" ${L_NPROC}`
812        ln -sf ../LONG/ISOMIP_LONG_00000048_restart_${L_NPROC}.nc .
813    done
814
815    cd ${SETTE_DIR}
816    . ./prepare_job.sh input_ISOMIP.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
817    cd ${SETTE_DIR}
818    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
819
820## Reproducibility tests
821    export TEST_NAME="REPRO_7_3"
822    cd ${MAIN_DIR}
823    cd ${SETTE_DIR}
824    . ./param.cfg
825    . ./all_functions.sh
826    . ./prepare_exe_dir.sh
827    set_valid_dir
828    clean_valid_dir
829    JOB_FILE=${EXE_DIR}/run_job.sh
830    NPROC=21
831    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
832    cd ${EXE_DIR}
833    set_namelist namelist_cfg cn_exp \"ISOMIP_73\"
834    set_namelist namelist_cfg nn_it000 1
835    set_namelist namelist_cfg nn_itend 48
836    set_namelist namelist_cfg jpni 7
837    set_namelist namelist_cfg jpnj 3
838    set_namelist namelist_cfg ln_ctl .false.
839    set_namelist namelist_cfg sn_cfctl%l_config .true.
840    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
841    if [ ${USING_MPMD} == "yes" ] ; then
842       set_xio_using_server iodef.xml true
843    else
844       set_xio_using_server iodef.xml false
845    fi
846    cd ${SETTE_DIR}
847    . ./prepare_job.sh input_ISOMIP.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
848    cd ${SETTE_DIR}
849    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
850
851    cd ${SETTE_DIR}
852    export TEST_NAME="REPRO_8_4"
853    . ./prepare_exe_dir.sh
854    set_valid_dir
855    clean_valid_dir
856    JOB_FILE=${EXE_DIR}/run_job.sh
857    NPROC=32
858    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
859    cd ${EXE_DIR}
860    set_namelist namelist_cfg cn_exp \"ISOMIP_84\"
861    set_namelist namelist_cfg nn_it000 1
862    set_namelist namelist_cfg nn_itend 48
863    set_namelist namelist_cfg jpni 8
864    set_namelist namelist_cfg jpnj 4
865    set_namelist namelist_cfg ln_ctl .false.
866    set_namelist namelist_cfg sn_cfctl%l_config .true.
867    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
868    if [ ${USING_MPMD} == "yes" ] ; then
869       set_xio_using_server iodef.xml true
870    else
871       set_xio_using_server iodef.xml false
872    fi
873    cd ${SETTE_DIR}
874    . ./prepare_job.sh input_ISOMIP.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
875    cd ${SETTE_DIR}
876    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
877
878fi
879
880#----
881done
Note: See TracBrowser for help on using the repository browser.