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

source: utils/CI/sette/sette_test-cases.sh

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

#2673 . Reintegrate sette developments back onto main sette branch. This action closes #2673

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