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

source: utils/CI/sette_ticket2496/sette_test-cases.sh @ 13639

Last change on this file since 13639 was 13639, checked in by mocavero, 4 years ago

Added key_mpi3 in sette to activate/deactivate the use of MPI3 neighborhood collectives lbc routines - ticket #2496

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