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

source: utils/CI/r12931_sette_ticket2462/sette_test-cases.sh @ 13900

Last change on this file since 13900 was 13755, checked in by andmirek, 4 years ago

Ticket #2462: Sette to test restarts read/write with XIOS

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