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_reference-configurations.sh in utils/CI/sette – NEMO

source: utils/CI/sette/sette_reference-configurations.sh @ 13948

Last change on this file since 13948 was 13948, checked in by emanuelaclementi, 4 years ago

updates to run ORCA2_ICE_PISCES test forced with wave fields - ticket #2155 #2339

  • Property svn:executable set to *
File size: 63.6 KB
Line 
1#!/bin/bash
2############################################################
3# Author : Simona Flavoni for NEMO
4# Contact: sflod@locean-ipsl.upmc.fr
5# 2013   : A.C. Coward added options for testing with XIOS in dettached mode
6#
7# sette.sh   : principal script of SET TEsts for NEMO (SETTE)
8# ----------------------------------------------------------------------
9# NEMO/SETTE , NEMO Consortium (2010)
10# Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
11# ----------------------------------------------------------------------
12#
13#############################################################
14#set -vx
15set -o posix
16#set -u
17#set -e
18# ===========
19# DESCRIPTION
20# ===========
21#
22# Variables to be checked by user:
23#
24# COMPILER          : name of compiler as defined in NEMOGCM/ARCH directory
25# BATCH_COMMAND_PAR :  name of the command for submitting parallel batch jobs
26# BATCH_COMMAND_SEQ :  name of the command for submitting sequential batch jobs 
27# INTERACT_FLAG     : flag to run in interactive mode "yes"
28#                           to run in batch mode "no"
29# MPIRUN_FLAG       : flag to run in parallel (MPI) "yes"
30#                           to run in sequential mode (NB_PROC = 1) "no"
31# USING_XIOS        : flag to control the activation of key_iomput
32#                      "yes" to compile using key_iomput and link to the external XIOS library
33#                      "no"  to compile without key_iomput and link to the old IOIPSL library
34# USING_MPMD        : flag to control the use of stand-alone IO servers
35#                     requires USING_XIOS="yes"
36#                      "yes" to run in MPMD (detached) mode with stand-alone IO servers
37#                      "no"  to run in SPMD (attached) mode without separate IO servers
38# SETTE_TIMING      : flag to control the production of timing.output
39#                     requires SETTE_TIMING="yes"
40
41# NUM_XIOSERVERS    : number of stand-alone IO servers to employ
42#                     set to zero if USING_MPMD="no"
43#
44# Principal script is sette.sh, that calls
45#
46#  makenemo  : to create successive exectuables in ${CONFIG_NAME}/BLD/bin/nemo.exe
47#              and links to nemo in ${CONFIG_NAME}/EXP00)
48#
49#  param.cfg : sets and loads following directories:
50#              This will have been run by the parent sette.sh and values exported here
51#
52#   FORCING_DIR         : is the directory for forcing files (tarfile)
53#   INPUT_DIR           : is the directory for input files storing
54#   TMPDIR              : is the temporary directory (if needed)
55#   NEMO_VALIDATION_DIR : is the validation directory
56#
57#   (NOTE: this file is the same for all configrations to be tested with sette)
58#
59#   all_functions.sh : loads functions used by sette (note: new functions can be added here)
60#   set_namelist     : function declared in all_functions that sets namelist parameters
61#   post_test_tidyup : creates validation storage directory and copies required output files
62#                      (run.stat and ocean.output) in it after execution of test.
63#
64#  VALIDATION tree is:
65#
66#   NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE)
67#
68#  prepare_exe_dir.sh : defines and creates directory where the test is executed
69#                       execution directory takes name of TEST_NAME defined for every test
70#                       in sette.sh. (each test in executed in its own directory)
71#
72#  set_valid_dir       : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
73#
74#  clean_valid_dir    : rename ocean.output/run.stat and tracer.stat to avoid checking them in the report
75#                       ( not doing it could lead to false positive )
76#
77#  prepare_job.sh     : to generate the script run_job.sh
78#
79#  fcm_job.sh         : run in batch (INTERACT_FLAG="no") or interactive (INTERACT_FLAG="yes")
80#                        see sette.sh and BATCH_TEMPLATE directory
81#
82#  NOTE: jobs requiring initial or forcing data need to have an input_CONFIG.cfg in which
83#        can be found paths to the input tar file)
84#  NOTE: if job is not launched for any reason you have the executable ready in ${EXE_DIR}
85#        directory
86#  NOTE: the changed namelists are left in ${EXE_DIR} directory whereas original namelists
87#        remain in ${NEW_CONF}/EXP00
88#
89#  NOTE: a log file, output.sette, is created in ${SETTE_DIR} with the echoes of
90#        executed commands
91#
92#  NOTE: if sette.sh is stopped in output.sette there is written the last command
93#        executed by sette.sh
94#
95# example use: ./sette.sh
96#########################################################################################
97#
98# LOAD param value
99SETTE_DIR=$(cd $(dirname "$0"); pwd)
100MAIN_DIR=$(dirname $SETTE_DIR)
101
102export BATCH_COMMAND_PAR=${BATCH_CMD}
103export BATCH_COMMAND_SEQ=${BATCH_CMD}
104export INTERACT_FLAG="no"
105export MPIRUN_FLAG="yes"
106export USING_ICEBERGS="yes"
107export USING_EXTRA_HALO="no"
108#
109export ADD_KEYS=""
110export DEL_KEYS=""
111if [ ${USING_XIOS} == "yes" ] 
112 then
113   export ADD_KEYS="${ADD_KEYS} key_iomput"
114 else
115   export DEL_KEYS="${DEL_KEYS} key_iomput"
116fi
117#
118if [ ${ADD_NOSIGNEDZERO} == "yes" ]
119 then
120   export ADD_KEYS="${ADD_KEYS} key_nosignedzero"
121 else
122   export DEL_KEYS="${DEL_KEYS} key_nosignedzero" 
123fi
124#
125# Settings which control the use of stand alone servers (only relevant if using xios)
126#
127export NUM_XIOSERVERS=4
128export JOB_PREFIX=${JOB_PREFIX_MPMD}
129#
130if [ ${USING_MPMD} == "no" ] 
131 then
132   export NUM_XIOSERVERS=0
133   export JOB_PREFIX=${JOB_PREFIX_NOMPMD}
134fi
135#
136#
137if [ ${USING_MPMD} == "yes" ] && [ ${USING_XIOS} == "no" ]
138 then
139   echo "Incompatible choices. MPMD mode requires the XIOS server"
140   exit
141fi
142
143# Directory to run the tests
144CONFIG_DIR0=${MAIN_DIR}/cfgs
145TOOLS_DIR=${MAIN_DIR}/tools
146
147CMP_NAM=${1:-$COMPILER}
148# Copy job_batch_COMPILER file for specific compiler into job_batch_template
149cd ${SETTE_DIR}
150cp BATCH_TEMPLATE/${JOB_PREFIX}-${COMPILER} job_batch_template || exit
151# Description of available configurations:
152# GYRE_PISCES       :
153# ORCA2_ICE_PISCES  :
154# ORCA2_OFF_PISCES  :
155# AMM12             :
156# SAS               :
157# ORCA2_ICE_OBS     :
158# AGRIF             : test AGRIF in a double zoom configuration in the nordic seas + 1 zoom in the eq. Pacific (AGRIF_DEMO)
159#                       and check that key_agrif without zoom = no key_agrif
160# WED025           : regional configuration including sea-ice and tides (Spitzbergen)
161
162for config in ${TEST_CONFIGS[@]}
163do
164
165# -----------
166# GYRE_PISCES
167# -----------
168if [ ${config} == "GYRE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
169## Restartability tests for GYRE_PISCES
170    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
171    then
172   ITEND=12    # 1 day
173    else
174   ITEND=1080  # 90 days
175    fi
176    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
177    export TEST_NAME="LONG"
178    cd ${MAIN_DIR}
179    #
180    # syncronisation if target directory/file exist (not done by makenemo)
181    . ${SETTE_DIR}/all_functions.sh
182    sync_config  GYRE_PISCES GYRE_PISCES_ST 'cfgs'
183    clean_config GYRE_PISCES GYRE_PISCES_ST 'cfgs'
184    #
185    . ./makenemo -m ${CMP_NAM} -n GYRE_PISCES_ST -r GYRE_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
186    cd ${SETTE_DIR}
187    . ./param.cfg
188    . ./all_functions.sh
189    . ./prepare_exe_dir.sh
190    set_valid_dir
191    clean_valid_dir
192    JOB_FILE=${EXE_DIR}/run_job.sh
193    NPROC=8
194    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
195    cd ${EXE_DIR} 
196    set_namelist namelist_cfg cn_exp \"GYREPIS_LONG\"
197    set_namelist namelist_cfg nn_it000 1
198    set_namelist namelist_cfg nn_itend ${ITEND}
199    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
200    set_namelist namelist_cfg ln_linssh .true.
201    set_namelist namelist_cfg jpni 2
202    set_namelist namelist_cfg jpnj 4
203    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
204    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
205    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
206    if [ ${USING_MPMD} == "yes" ] ; then
207       set_xio_using_server iodef.xml true
208    else
209       set_xio_using_server iodef.xml false
210    fi
211    cd ${SETTE_DIR}
212    . ./prepare_job.sh input_GYRE.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
213
214    cd ${SETTE_DIR}
215    export TEST_NAME="SHORT"
216    . ./prepare_exe_dir.sh
217    set_valid_dir
218    clean_valid_dir
219    cd ${EXE_DIR}
220    set_namelist namelist_cfg cn_exp \"GYREPIS_SHORT\"
221    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
222    set_namelist namelist_cfg nn_itend ${ITEND}
223    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
224    set_namelist namelist_cfg ln_rstart .true.
225    set_namelist namelist_cfg nn_rstctl 2
226    set_namelist namelist_cfg ln_linssh .true.
227    set_namelist namelist_cfg jpni 2
228    set_namelist namelist_cfg jpnj 4
229    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
230    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
231    set_namelist namelist_top_cfg ln_rsttr .true.
232    set_namelist namelist_top_cfg nn_rsttr 2
233    set_namelist namelist_cfg cn_ocerst_in \"GYREPIS_LONG_${ITRST}_restart\"
234    set_namelist namelist_top_cfg cn_trcrst_in \"GYREPIS_LONG_${ITRST}_restart_trc\"
235    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
236    if [ ${USING_MPMD} == "yes" ] ; then
237       set_xio_using_server iodef.xml true
238    else
239       set_xio_using_server iodef.xml false
240    fi
241    for (( i=1; i<=$NPROC; i++)) ; do
242        L_NPROC=$(( $i - 1 ))
243        L_NPROC=`printf "%04d\n" ${L_NPROC}`
244        ln -sf ../LONG/GYREPIS_LONG_${ITRST}_restart_${L_NPROC}.nc .
245        ln -sf ../LONG/GYREPIS_LONG_${ITRST}_restart_trc_${L_NPROC}.nc .
246    done
247    cd ${SETTE_DIR}
248    . ./prepare_job.sh input_GYRE.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
249    cd ${SETTE_DIR}
250    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
251
252fi
253
254if [ ${config} == "GYRE_PISCES" ] && [ ${DO_REPRO} == "1" ] ;  then
255## Reproducibility tests for GYRE_PISCES
256    export TEST_NAME="REPRO_2_4"
257    cd ${MAIN_DIR}
258    cd ${SETTE_DIR}
259    . ./param.cfg
260    . ./all_functions.sh
261    . ./prepare_exe_dir.sh
262    set_valid_dir
263    clean_valid_dir
264    JOB_FILE=${EXE_DIR}/run_job.sh
265    NPROC=8
266    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
267    cd ${EXE_DIR}
268    set_namelist namelist_cfg cn_exp \"GYREPIS_48\"
269    set_namelist namelist_cfg nn_it000 1
270    set_namelist namelist_cfg nn_itend ${ITEND}
271    set_namelist namelist_cfg ln_linssh .true.
272    set_namelist namelist_cfg jpni 2
273    set_namelist namelist_cfg jpnj 4
274    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
275    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
276    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
277    if [ ${USING_MPMD} == "yes" ] ; then
278       set_xio_using_server iodef.xml true
279    else
280       set_xio_using_server iodef.xml false
281    fi
282    cd ${SETTE_DIR}
283    . ./prepare_job.sh input_GYRE.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
284    cd ${SETTE_DIR}
285    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
286
287    cd ${SETTE_DIR}
288    export TEST_NAME="REPRO_4_2"
289    . ./prepare_exe_dir.sh
290    set_valid_dir
291    clean_valid_dir
292    JOB_FILE=${EXE_DIR}/run_job.sh
293    NPROC=8
294    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
295    cd ${EXE_DIR}
296    set_namelist namelist_cfg cn_exp \"GYREPIS_84\"
297    set_namelist namelist_cfg nn_it000 1
298    set_namelist namelist_cfg nn_itend ${ITEND}
299    set_namelist namelist_cfg ln_linssh .true.
300    set_namelist namelist_cfg jpni 4
301    set_namelist namelist_cfg jpnj 2
302    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
303    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
304    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
305    if [ ${USING_MPMD} == "yes" ] ; then
306       set_xio_using_server iodef.xml true
307    else
308       set_xio_using_server iodef.xml false
309    fi
310    cd ${SETTE_DIR}
311    . ./prepare_job.sh input_GYRE.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
312    cd ${SETTE_DIR}
313    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
314
315fi
316
317# -----------------
318# ORCA2_ICE_PISCES
319# -----------------
320if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
321## Restartability tests for ORCA2_ICE_PISCES
322    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
323    then
324   ITEND=16   # 1 day
325    else
326   ITEND=992  # 62 days
327    fi
328    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
329    export TEST_NAME="LONG"
330    cd ${MAIN_DIR}
331    #
332    # syncronisation if target directory/file exist (not done by makenemo)
333    . ${SETTE_DIR}/all_functions.sh
334    sync_config  ORCA2_ICE_PISCES ORCA2_ICE_PISCES_ST 'cfgs'
335    clean_config ORCA2_ICE_PISCES ORCA2_ICE_PISCES_ST 'cfgs'
336    #
337    . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_PISCES_ST -r ORCA2_ICE_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
338    cd ${SETTE_DIR}
339    . ./param.cfg
340    . ./all_functions.sh
341    . ./prepare_exe_dir.sh
342    set_valid_dir
343    clean_valid_dir
344    JOB_FILE=${EXE_DIR}/run_job.sh
345    NPROC=32
346    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
347    cd ${EXE_DIR}
348    set_namelist namelist_cfg cn_exp \"O2L3P_LONG\"
349    set_namelist namelist_cfg nn_it000 1
350    set_namelist namelist_cfg nn_itend ${ITEND}
351    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
352    set_namelist namelist_cfg jpni 4
353    set_namelist namelist_cfg jpnj 8
354    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
355    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
356    set_namelist namelist_cfg ln_use_calving .true.
357    set_namelist namelist_cfg ln_wave .true.
358    set_namelist namelist_cfg ln_cdgw .false.
359    set_namelist namelist_cfg ln_sdw .true.
360    set_namelist namelist_cfg ln_stcor .true.
361    set_namelist namelist_cfg ln_wave_test .true.
362    #
363    if [ ${USING_ICEBERGS} == "no" ]  ; then set_namelist namelist_cfg ln_icebergs .false. ; fi
364    if [ ${USING_ICEBERGS} == "yes" ] ; then set_namelist namelist_cfg ln_icebergs .true. ; fi
365    if [ ${USING_EXTRA_HALO} == "no" ]  ; then set_namelist namelist_cfg nn_hls 1 ; fi
366    if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi
367    # for debugging purposes set_namelist namelist_cfg rn_test_box -180.0, 180.0, -90.0, -55.0
368    #
369    set_namelist namelist_ice_cfg ln_icediachk .true.
370    set_namelist namelist_top_cfg ln_trcdta .false.
371    set_namelist namelist_top_cfg ln_trcbc  .false.
372    # put ln_ironsed, ln_hydrofe to false
373    # if not you need input files, and for tests is not necessary
374    set_namelist namelist_pisces_cfg ln_varpar .false.
375    set_namelist namelist_pisces_cfg ln_ironsed .false.
376    set_namelist namelist_pisces_cfg ln_ironice .false.
377    set_namelist namelist_pisces_cfg ln_hydrofe .false.
378    # put ln_pisdmp to false : no restoring to global mean value
379    set_namelist namelist_pisces_cfg ln_pisdmp .false.
380    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
381    if [ ${USING_MPMD} == "yes" ] ; then
382       set_xio_using_server iodef.xml true
383    else
384       set_xio_using_server iodef.xml false
385    fi
386    cd ${SETTE_DIR}
387    . ./prepare_job.sh input_ORCA2_ICE_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
388   
389    cd ${SETTE_DIR}
390    export TEST_NAME="SHORT"
391    . ./prepare_exe_dir.sh
392    set_valid_dir
393    clean_valid_dir
394    cd ${EXE_DIR}
395    set_namelist namelist_cfg cn_exp \"O2L3P_SHORT\"
396    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
397    set_namelist namelist_cfg nn_itend ${ITEND}
398    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
399    set_namelist namelist_cfg ln_rstart .true.
400    set_namelist namelist_cfg nn_rstctl 2
401    set_namelist namelist_cfg jpni 4
402    set_namelist namelist_cfg jpnj 8
403    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
404    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
405    set_namelist namelist_cfg nn_test_icebergs -1
406    set_namelist namelist_cfg ln_wave .true.
407    set_namelist namelist_cfg ln_cdgw .false.
408    set_namelist namelist_cfg ln_sdw .true.
409    set_namelist namelist_cfg ln_stcor .true.
410    set_namelist namelist_cfg ln_wave_test .true.
411    #
412    if [ ${USING_ICEBERGS} == "no" ]  ; then set_namelist namelist_cfg ln_icebergs .false. ; fi
413    if [ ${USING_ICEBERGS} == "yes" ] ; then set_namelist namelist_cfg ln_icebergs .true. ; fi
414    if [ ${USING_EXTRA_HALO} == "no" ]  ; then set_namelist namelist_cfg nn_hls 1 ; fi
415    if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi
416    # for debugging purposes set_namelist namelist_cfg rn_test_box -180.0, 180.0, -90.0, -55.0
417    #
418    set_namelist namelist_ice_cfg ln_icediachk .true.
419    set_namelist namelist_top_cfg ln_rsttr .true.
420    set_namelist namelist_top_cfg nn_rsttr 2
421    set_namelist namelist_cfg cn_ocerst_in \"O2L3P_LONG_${ITRST}_restart\"
422    set_namelist namelist_cfg cn_icbrst_in \"O2L3P_LONG_${ITRST}_restart_icb\"
423    set_namelist namelist_top_cfg cn_trcrst_in \"O2L3P_LONG_${ITRST}_restart_trc\"
424    set_namelist namelist_ice_cfg cn_icerst_in \"O2L3P_LONG_${ITRST}_restart_ice\"
425    set_namelist namelist_top_cfg ln_trcbc  .false.
426    # put ln_ironsed, ln_hydrofe to false
427    # if not you need input files, and for tests is not necessary
428    set_namelist namelist_pisces_cfg ln_varpar .false.
429    set_namelist namelist_pisces_cfg ln_ironsed .false.
430    set_namelist namelist_pisces_cfg ln_ironice .false.
431    set_namelist namelist_pisces_cfg ln_hydrofe .false.
432    # put ln_pisdmp to false : no restoring to global mean value
433    set_namelist namelist_pisces_cfg ln_pisdmp .false.
434    for (( i=1; i<=$NPROC; i++)) ; do
435        L_NPROC=$(( $i - 1 ))
436        L_NPROC=`printf "%04d\n" ${L_NPROC}`
437        ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_${L_NPROC}.nc .
438        ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_trc_${L_NPROC}.nc .
439        ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
440        if [ ${USING_ICEBERGS} == "yes" ]
441            then
442             ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc
443        fi
444    done
445    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
446    if [ ${USING_MPMD} == "yes" ] ; then
447       set_xio_using_server iodef.xml true
448    else
449       set_xio_using_server iodef.xml false
450    fi
451    cd ${SETTE_DIR}
452    . ./prepare_job.sh input_ORCA2_ICE_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
453    cd ${SETTE_DIR}
454    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
455
456fi
457
458if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_REPRO} == "1" ] ;  then
459## Reproducibility tests for ORCA2_ICE_PISCES
460    export TEST_NAME="REPRO_4_8"
461    cd ${MAIN_DIR}
462    cd ${SETTE_DIR}
463    . ./param.cfg
464    . ./all_functions.sh
465    . ./prepare_exe_dir.sh
466    set_valid_dir
467    clean_valid_dir
468    JOB_FILE=${EXE_DIR}/run_job.sh
469    NPROC=32
470    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
471    cd ${EXE_DIR}
472    set_namelist namelist_cfg cn_exp \"O2L3P_48\"
473    set_namelist namelist_cfg nn_it000 1
474    set_namelist namelist_cfg nn_itend ${ITEND}
475    set_namelist namelist_cfg jpni 4
476    set_namelist namelist_cfg jpnj 8
477    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
478    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
479    set_namelist namelist_cfg ln_wave .true.
480    set_namelist namelist_cfg ln_cdgw .false.
481    set_namelist namelist_cfg ln_sdw .true.
482    set_namelist namelist_cfg ln_stcor .true.
483    set_namelist namelist_cfg ln_wave_test .true.
484
485    if [ ${USING_ICEBERGS} == "no" ]  ; then set_namelist namelist_cfg ln_icebergs .false. ; fi
486    if [ ${USING_ICEBERGS} == "yes" ] ; then set_namelist namelist_cfg ln_icebergs .true. ; fi
487    if [ ${USING_EXTRA_HALO} == "no" ]  ; then set_namelist namelist_cfg nn_hls 1 ; fi
488    if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi
489    # for debugging purposes set_namelist namelist_cfg rn_test_box -180.0, 180.0, -90.0, -55.0
490
491    set_namelist namelist_top_cfg ln_trcdta .false.
492    set_namelist namelist_top_cfg ln_trcbc  .false.
493    # put ln_ironsed, ln_hydrofe to false
494    # if not you need input files, and for tests is not necessary
495    set_namelist namelist_pisces_cfg ln_varpar .false.
496    set_namelist namelist_pisces_cfg ln_ironsed .false.
497    set_namelist namelist_pisces_cfg ln_ironice .false.
498    set_namelist namelist_pisces_cfg ln_hydrofe .false.
499    # put ln_pisdmp to false : no restoring to global mean value
500    set_namelist namelist_pisces_cfg ln_pisdmp .false.
501    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
502    if [ ${USING_MPMD} == "yes" ] ; then
503       set_xio_using_server iodef.xml true
504    else
505       set_xio_using_server iodef.xml false
506    fi
507    cd ${SETTE_DIR}
508    . ./prepare_job.sh input_ORCA2_ICE_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
509    cd ${SETTE_DIR}
510    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
511
512    cd ${SETTE_DIR}
513    export TEST_NAME="REPRO_8_4"
514    . ./prepare_exe_dir.sh
515    set_valid_dir
516    clean_valid_dir
517    JOB_FILE=${EXE_DIR}/run_job.sh
518    NPROC=32
519    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
520    cd ${EXE_DIR}
521    set_namelist namelist_cfg cn_exp \"O2L3P_84\"
522    set_namelist namelist_cfg nn_it000 1
523    set_namelist namelist_cfg nn_itend ${ITEND}
524    set_namelist namelist_cfg jpni 8
525    set_namelist namelist_cfg jpnj 4
526    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
527    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
528    set_namelist namelist_cfg ln_wave .true.
529    set_namelist namelist_cfg ln_cdgw .false.
530    set_namelist namelist_cfg ln_sdw .true.
531    set_namelist namelist_cfg ln_stcor .true.
532    set_namelist namelist_cfg ln_wave_test .true.
533
534    if [ ${USING_ICEBERGS} == "no" ]  ; then set_namelist namelist_cfg ln_icebergs .false. ; fi
535    if [ ${USING_ICEBERGS} == "yes" ] ; then set_namelist namelist_cfg ln_icebergs .true. ; fi
536    if [ ${USING_EXTRA_HALO} == "no" ]  ; then set_namelist namelist_cfg nn_hls 1 ; fi
537    if [ ${USING_EXTRA_HALO} == "yes" ] ; then set_namelist namelist_cfg nn_hls 2 ; fi
538    # for debugging purposes set_namelist namelist_cfg rn_test_box -180.0, 180.0, -90.0, -55.0
539
540    set_namelist namelist_top_cfg ln_trcdta .false.
541    set_namelist namelist_top_cfg ln_trcbc  .false.
542    # put ln_ironsed, ln_hydrofe to false
543    # if not you need input files, and for tests is not necessary
544    set_namelist namelist_pisces_cfg ln_varpar .false.
545    set_namelist namelist_pisces_cfg ln_ironsed .false.
546    set_namelist namelist_pisces_cfg ln_ironice .false.
547    set_namelist namelist_pisces_cfg ln_hydrofe .false.
548    # put ln_pisdmp to false : no restoring to global mean value
549    set_namelist namelist_pisces_cfg ln_pisdmp .false.
550    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
551    if [ ${USING_MPMD} == "yes" ] ; then
552       set_xio_using_server iodef.xml true
553    else
554       set_xio_using_server iodef.xml false
555    fi
556    cd ${SETTE_DIR}
557    . ./prepare_job.sh input_ORCA2_ICE_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
558    cd ${SETTE_DIR}
559    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
560fi
561
562# ----------------
563# ORCA2_OFF_PISCES
564# ----------------
565if [ ${config} == "ORCA2_OFF_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
566## Restartability tests for ORCA2_OFF_PISCES
567    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
568    then
569   ITEND=16   # 4 days
570    else
571   ITEND=380  # 95 days
572    fi
573    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
574    export TEST_NAME="LONG"
575    cd ${MAIN_DIR}
576    #
577    # syncronisation if target directory/file exist (not done by makenemo)
578    . ${SETTE_DIR}/all_functions.sh
579    sync_config  ORCA2_OFF_PISCES ORCA2_OFF_PISCES_ST 'cfgs'
580    clean_config ORCA2_OFF_PISCES ORCA2_OFF_PISCES_ST 'cfgs'
581    #
582    . ./makenemo -m ${CMP_NAM} -n ORCA2_OFF_PISCES_ST -r ORCA2_OFF_PISCES -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
583    cd ${SETTE_DIR}
584    . ./param.cfg
585    . ./all_functions.sh
586    . ./prepare_exe_dir.sh
587    set_valid_dir
588    clean_valid_dir
589    JOB_FILE=${EXE_DIR}/run_job.sh
590    NPROC=32
591    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
592    cd ${EXE_DIR}
593    set_namelist namelist_cfg cn_exp \"OFFP_LONG\"
594    set_namelist namelist_cfg nn_it000 1
595    set_namelist namelist_cfg nn_itend ${ITEND}
596    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
597    set_namelist namelist_cfg jpni 4
598    set_namelist namelist_cfg jpnj 8
599    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
600    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
601    set_namelist namelist_cfg ln_qsr_rgb .true.
602    set_namelist namelist_top_cfg ln_trcdta .false.
603    set_namelist namelist_top_cfg ln_trcbc  .false.
604    # put ln_ironsed, ln_hydrofe to false
605    # if not you need input files, and for tests is not necessary
606    set_namelist namelist_pisces_cfg ln_varpar .false.
607    set_namelist namelist_pisces_cfg ln_ironsed .false.
608    set_namelist namelist_pisces_cfg ln_ironice .false.
609    set_namelist namelist_pisces_cfg ln_hydrofe .false.
610    # put ln_pisdmp to false : no restoring to global mean value
611    set_namelist namelist_pisces_cfg ln_pisdmp .false.
612    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
613    if [ ${USING_MPMD} == "yes" ] ; then
614       set_xio_using_server iodef.xml true
615    else
616       set_xio_using_server iodef.xml false
617    fi
618    cd ${SETTE_DIR}
619    . ./prepare_job.sh input_ORCA2_OFF_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
620   
621    cd ${SETTE_DIR}
622    export TEST_NAME="SHORT"
623    . ./prepare_exe_dir.sh
624    set_valid_dir
625    clean_valid_dir
626    cd ${EXE_DIR}
627    set_namelist namelist_cfg cn_exp \"OFFP_SHORT\"
628    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
629    set_namelist namelist_cfg nn_itend ${ITEND}
630    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
631    set_namelist namelist_cfg jpni 4
632    set_namelist namelist_cfg jpnj 8
633    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
634    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
635    set_namelist namelist_cfg ln_qsr_rgb .true.
636    set_namelist namelist_top_cfg ln_rsttr .true.
637    set_namelist namelist_top_cfg nn_rsttr 2
638    set_namelist namelist_top_cfg cn_trcrst_in \"OFFP_LONG_${ITRST}_restart_trc\"
639    for (( i=1; i<=$NPROC; i++)) ; do
640        L_NPROC=$(( $i - 1 ))
641        L_NPROC=`printf "%04d\n" ${L_NPROC}`
642        ln -sf ../LONG/OFFP_LONG_${ITRST}_restart_trc_${L_NPROC}.nc .
643    done
644    set_namelist namelist_top_cfg ln_trcbc  .false.
645    # put ln_ironsed, ln_hydrofe to false
646    # if not you need input files, and for tests is not necessary
647    set_namelist namelist_pisces_cfg ln_varpar .false.
648    set_namelist namelist_pisces_cfg ln_ironsed .false.
649    set_namelist namelist_pisces_cfg ln_ironice .false.
650    set_namelist namelist_pisces_cfg ln_hydrofe .false.
651    # put ln_pisdmp to false : no restoring to global mean value
652    set_namelist namelist_pisces_cfg ln_pisdmp .false.
653    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
654    if [ ${USING_MPMD} == "yes" ] ; then
655       set_xio_using_server iodef.xml true
656    else
657       set_xio_using_server iodef.xml false
658    fi
659    cd ${SETTE_DIR}
660    . ./prepare_job.sh input_ORCA2_OFF_PISCES.cfg $NPROC ${TEST_NAME}  ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
661    cd ${SETTE_DIR}
662    . ./fcm_job.sh $NPROC  ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
663
664fi
665
666if [ ${config} == "ORCA2_OFF_PISCES" ] && [ ${DO_REPRO} == "1" ] ;  then
667## Reproducibility tests for ORCA2_OFF_PISCES
668    export TEST_NAME="REPRO_4_8"
669    cd ${MAIN_DIR}
670    cd ${SETTE_DIR}
671    . ./param.cfg
672    . ./all_functions.sh
673    . ./prepare_exe_dir.sh
674    set_valid_dir
675    clean_valid_dir
676    JOB_FILE=${EXE_DIR}/run_job.sh
677    NPROC=32
678    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
679    cd ${EXE_DIR}
680    set_namelist namelist_cfg cn_exp \"OFFP_48\"
681    set_namelist namelist_cfg nn_it000 1
682    set_namelist namelist_cfg nn_itend ${ITEND}
683    set_namelist namelist_cfg jpni 4
684    set_namelist namelist_cfg jpnj 8
685    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
686    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
687    set_namelist namelist_cfg ln_qsr_rgb .true.
688    set_namelist namelist_top_cfg ln_trcdta .false.
689    set_namelist namelist_top_cfg ln_trcbc  .false.
690    # put ln_ironsed, ln_hydrofe to false
691    # if not you need input files, and for tests is not necessary
692    set_namelist namelist_pisces_cfg ln_varpar .false.
693    set_namelist namelist_pisces_cfg ln_ironsed .false.
694    set_namelist namelist_pisces_cfg ln_ironice .false.
695    set_namelist namelist_pisces_cfg ln_hydrofe .false.
696    # put ln_pisdmp to false : no restoring to global mean value
697    set_namelist namelist_pisces_cfg ln_pisdmp .false.
698    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
699    if [ ${USING_MPMD} == "yes" ] ; then
700       set_xio_using_server iodef.xml true
701    else
702       set_xio_using_server iodef.xml false
703    fi
704    cd ${SETTE_DIR}
705    . ./prepare_job.sh input_ORCA2_OFF_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
706    cd ${SETTE_DIR}
707    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
708
709    cd ${SETTE_DIR}
710    export TEST_NAME="REPRO_8_4"
711    . ./prepare_exe_dir.sh
712    set_valid_dir
713    clean_valid_dir
714    JOB_FILE=${EXE_DIR}/run_job.sh
715    NPROC=32
716    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
717    cd ${EXE_DIR}
718    set_namelist namelist_cfg cn_exp \"OFFP_84\"
719    set_namelist namelist_cfg nn_it000 1
720    set_namelist namelist_cfg nn_itend ${ITEND}
721    set_namelist namelist_cfg jpni 8
722    set_namelist namelist_cfg jpnj 4
723    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
724    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
725    set_namelist namelist_cfg ln_qsr_rgb .true.
726    set_namelist namelist_top_cfg ln_trcdta .false.
727    set_namelist namelist_top_cfg ln_trcbc  .false.
728    # put ln_ironsed, ln_hydrofe to false
729    # if not you need input files, and for tests is not necessary
730    set_namelist namelist_pisces_cfg ln_varpar .false.
731    set_namelist namelist_pisces_cfg ln_ironsed .false.
732    set_namelist namelist_pisces_cfg ln_ironice .false.
733    set_namelist namelist_pisces_cfg ln_hydrofe .false.
734    # put ln_pisdmp to false : no restoring to global mean value
735    set_namelist namelist_pisces_cfg ln_pisdmp .false.
736    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
737    if [ ${USING_MPMD} == "yes" ] ; then
738       set_xio_using_server iodef.xml true
739    else
740       set_xio_using_server iodef.xml false
741    fi
742    cd ${SETTE_DIR}
743    . ./prepare_job.sh input_ORCA2_OFF_PISCES.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
744    cd ${SETTE_DIR}
745    . ./fcm_job.sh $NPROC  ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
746fi
747
748# -----
749# AMM12
750# -----
751if [ ${config} == "AMM12" ] && [ ${DO_RESTART} == "1" ] ;  then
752    ## Restartability tests for AMM12
753    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
754    then
755   ITEND=12   # 3 h
756    else
757   ITEND=576  # 4 days
758    fi
759    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
760    export TEST_NAME="LONG"
761    cd ${MAIN_DIR}
762    #
763    # syncronisation if target directory/file exist (not done by makenemo)
764    . ${SETTE_DIR}/all_functions.sh
765    sync_config  AMM12 AMM12_ST 'cfgs'
766    clean_config AMM12 AMM12_ST 'cfgs'
767    #
768    . ./makenemo -m ${CMP_NAM} -n AMM12_ST -r AMM12 -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
769    cd ${SETTE_DIR}
770    . ./param.cfg
771    . ./all_functions.sh
772    . ./prepare_exe_dir.sh
773    set_valid_dir
774    clean_valid_dir
775    JOB_FILE=${EXE_DIR}/run_job.sh
776    NPROC=32
777    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
778    cd ${EXE_DIR}
779    set_namelist namelist_cfg cn_exp \"AMM12_LONG\"
780    set_namelist namelist_cfg nn_it000 1
781    set_namelist namelist_cfg nn_itend ${ITEND}
782    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
783    set_namelist namelist_cfg jpni 4
784    set_namelist namelist_cfg jpnj 8
785    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
786    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
787    if [ ${USING_MPMD} == "yes" ] ; then
788       set_xio_using_server iodef.xml true
789    else
790       set_xio_using_server iodef.xml false
791    fi
792    cd ${SETTE_DIR}
793    . ./prepare_job.sh input_AMM12.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
794
795    cd ${SETTE_DIR}
796    export TEST_NAME="SHORT"
797    . ./prepare_exe_dir.sh
798    set_valid_dir
799    clean_valid_dir
800    cd ${EXE_DIR}
801    set_namelist namelist_cfg cn_exp \"AMM12_SHORT\"
802    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
803    set_namelist namelist_cfg nn_itend ${ITEND}
804    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
805    set_namelist namelist_cfg jpni 4
806    set_namelist namelist_cfg jpnj 8
807    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
808    set_namelist namelist_cfg ln_rstart .true.
809    set_namelist namelist_cfg nn_rstctl 2
810    set_namelist namelist_cfg cn_ocerst_in \"AMM12_LONG_${ITRST}_restart\"
811    set_namelist namelist_cfg nn_date0 20120102
812    for (( i=1; i<=$NPROC; i++)) ; do
813        L_NPROC=$(( $i - 1 ))
814        L_NPROC=`printf "%04d\n" ${L_NPROC}`
815        ln -sf ../LONG/AMM12_LONG_${ITRST}_restart_${L_NPROC}.nc .
816    done
817    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
818    if [ ${USING_MPMD} == "yes" ] ; then
819       set_xio_using_server iodef.xml true
820    else
821       set_xio_using_server iodef.xml false
822    fi
823    cd ${SETTE_DIR}
824    . ./prepare_job.sh input_AMM12.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
825    cd ${SETTE_DIR}
826    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
827
828fi
829
830if [ ${config} == "AMM12" ] && [ ${DO_REPRO} == "1" ] ;  then
831## Reproducibility tests for AMM12
832    export TEST_NAME="REPRO_8_4"
833    cd ${MAIN_DIR}
834    cd ${SETTE_DIR}
835    . ./param.cfg
836    . ./all_functions.sh
837    . ./prepare_exe_dir.sh
838    set_valid_dir
839    clean_valid_dir
840    JOB_FILE=${EXE_DIR}/run_job.sh
841    NPROC=32
842    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
843    cd ${EXE_DIR}
844    set_namelist namelist_cfg cn_exp \"AMM12_84\"
845    set_namelist namelist_cfg nn_it000 1
846    set_namelist namelist_cfg nn_itend ${ITEND}
847    set_namelist namelist_cfg jpni 8
848    set_namelist namelist_cfg jpnj 4
849    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
850    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
851    if [ ${USING_MPMD} == "yes" ] ; then
852       set_xio_using_server iodef.xml true
853    else
854       set_xio_using_server iodef.xml false
855    fi
856    cd ${SETTE_DIR}
857    . ./prepare_job.sh input_AMM12.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
858    cd ${SETTE_DIR}
859    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
860
861    cd ${SETTE_DIR}
862    export TEST_NAME="REPRO_4_8"
863    . ./prepare_exe_dir.sh
864    set_valid_dir
865    clean_valid_dir
866    JOB_FILE=${EXE_DIR}/run_job.sh
867    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
868    cd ${EXE_DIR}
869    set_namelist namelist_cfg cn_exp \"AMM12_48\"
870    set_namelist namelist_cfg nn_it000 1
871    set_namelist namelist_cfg nn_itend ${ITEND}
872    set_namelist namelist_cfg jpni 4
873    set_namelist namelist_cfg jpnj 8
874    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
875    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
876    if [ ${USING_MPMD} == "yes" ] ; then
877       set_xio_using_server iodef.xml true
878    else
879       set_xio_using_server iodef.xml false
880    fi
881    cd ${SETTE_DIR}
882    . ./prepare_job.sh input_AMM12.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
883    cd ${SETTE_DIR}
884    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
885fi
886
887
888# ---------
889# ORCA2_SAS
890# ---------
891if [ ${config} == "SAS" ] && [ ${DO_RESTART} == "1" ] ;  then
892## Restartability tests
893    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
894    then
895   ITEND=16   # 1 day
896    else
897   ITEND=256  # 16 days
898    fi
899    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
900    export TEST_NAME="LONG"
901    cd ${MAIN_DIR}
902    #
903    # syncronisation if target directory/file exist (not done by makenemo)
904    . ${SETTE_DIR}/all_functions.sh
905    sync_config  ORCA2_SAS_ICE ORCA2_SAS_ICE_ST 'cfgs'
906    clean_config ORCA2_SAS_ICE ORCA2_SAS_ICE_ST 'cfgs'
907    #
908    . ./makenemo -m ${CMP_NAM} -n ORCA2_SAS_ICE_ST -r ORCA2_SAS_ICE -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
909    cd ${SETTE_DIR}
910    . ./param.cfg
911    . ./all_functions.sh
912    . ./prepare_exe_dir.sh
913    set_valid_dir
914    clean_valid_dir
915    JOB_FILE=${EXE_DIR}/run_job.sh
916    NPROC=32
917    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
918    cd ${EXE_DIR}
919    set_namelist namelist_cfg cn_exp \"SAS\"
920    set_namelist namelist_cfg nn_it000 1
921    set_namelist namelist_cfg nn_itend ${ITEND}
922    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
923    set_namelist namelist_cfg jpni 4
924    set_namelist namelist_cfg jpnj 8
925    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
926    set_namelist namelist_ice_cfg ln_icediachk .true.
927    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
928    if [ ${USING_MPMD} == "yes" ] ; then
929       set_xio_using_server iodef.xml true
930    else
931       set_xio_using_server iodef.xml false
932    fi
933    cd ${SETTE_DIR}
934    . ./prepare_job.sh input_SAS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
935
936    cd ${SETTE_DIR}
937    export TEST_NAME="SHORT"
938    . ./prepare_exe_dir.sh
939    set_valid_dir
940    clean_valid_dir
941    cd ${EXE_DIR}
942    set_namelist namelist_cfg cn_exp \"SAS\"
943    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
944    set_namelist namelist_cfg nn_itend ${ITEND}
945    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
946    set_namelist namelist_cfg jpni 4
947    set_namelist namelist_cfg jpnj 8
948    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
949    set_namelist namelist_cfg ln_rstart .true.
950    set_namelist namelist_cfg nn_rstctl 2
951    set_namelist namelist_cfg nn_date0 010109
952    set_namelist namelist_cfg cn_ocerst_in \"SAS_${ITRST}_restart\"
953    set_namelist namelist_ice_cfg cn_icerst_in \"SAS_${ITRST}_restart_ice\"
954    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
955    if [ ${USING_MPMD} == "yes" ] ; then
956       set_xio_using_server iodef.xml true
957    else
958       set_xio_using_server iodef.xml false
959    fi
960    for (( i=1; i<=$NPROC; i++)) ; do
961        L_NPROC=$(( $i - 1 ))
962        L_NPROC=`printf "%04d\n" ${L_NPROC}`
963        ln -sf ../LONG/SAS_${ITRST}_restart_${L_NPROC}.nc .
964        ln -sf ../LONG/SAS_${ITRST}_restart_ice_${L_NPROC}.nc .
965    done
966    cd ${SETTE_DIR}
967    . ./prepare_job.sh input_SAS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
968    cd ${SETTE_DIR}
969    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
970
971fi
972
973if [ ${config} == "SAS" ] && [ ${DO_REPRO} == "1" ] ;  then
974## Reproducibility tests
975    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
976    then
977   ITEND=16  # 1 day
978    else
979   ITEND=80  # 5 days
980    fi
981    export TEST_NAME="REPRO_4_8"
982    cd ${MAIN_DIR}
983    cd ${SETTE_DIR}
984    . ./param.cfg
985    . ./all_functions.sh
986    . ./prepare_exe_dir.sh
987    set_valid_dir
988    clean_valid_dir
989    JOB_FILE=${EXE_DIR}/run_job.sh
990    NPROC=32
991    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
992    cd ${EXE_DIR}
993    set_namelist namelist_cfg cn_exp \"SAS_48\"
994    set_namelist namelist_cfg nn_it000 1
995    set_namelist namelist_cfg nn_itend ${ITEND}
996    set_namelist namelist_cfg jpni 4
997    set_namelist namelist_cfg jpnj 8
998    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
999    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1000    if [ ${USING_MPMD} == "yes" ] ; then
1001       set_xio_using_server iodef.xml true
1002    else
1003       set_xio_using_server iodef.xml false
1004    fi
1005    cd ${SETTE_DIR}
1006    . ./prepare_job.sh input_SAS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1007    cd ${SETTE_DIR}
1008    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1009
1010    cd ${SETTE_DIR}
1011    export TEST_NAME="REPRO_8_4"
1012    . ./prepare_exe_dir.sh
1013    set_valid_dir
1014    clean_valid_dir
1015    JOB_FILE=${EXE_DIR}/run_job.sh
1016    NPROC=32
1017    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1018    cd ${EXE_DIR}
1019    set_namelist namelist_cfg cn_exp \"SAS_84\"
1020    set_namelist namelist_cfg nn_it000 1
1021    set_namelist namelist_cfg nn_itend ${ITEND}
1022    set_namelist namelist_cfg jpni 8
1023    set_namelist namelist_cfg jpnj 4
1024    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1025    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1026    if [ ${USING_MPMD} == "yes" ] ; then
1027       set_xio_using_server iodef.xml true
1028    else
1029       set_xio_using_server iodef.xml false
1030    fi
1031    cd ${SETTE_DIR}
1032    . ./prepare_job.sh input_SAS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1033    cd ${SETTE_DIR}
1034    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1035
1036fi
1037
1038
1039# --------------
1040# ORCA2_ICE_OBS
1041# --------------
1042## Test assimilation interface code, OBS and ASM for reproducibility
1043## Restartability not tested (ASM code not restartable while increments are being applied)
1044if [ ${config} == "ORCA2_ICE_OBS" ] && [ ${DO_RESTART} == "1" ] ;  then
1045## Reproducibility tests
1046    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
1047    then
1048   ITEND=16  # 1 day
1049    else
1050   ITEND=80  # 5 days
1051    fi
1052    export TEST_NAME="REPRO_4_8"
1053    cd ${MAIN_DIR}
1054    #
1055    # syncronisation if target directory/file exist (not done by makenemo)
1056    . ${SETTE_DIR}/all_functions.sh
1057    sync_config  ORCA2_ICE_PISCES ORCA2_ICE_OBS_ST 'cfgs'
1058    clean_config ORCA2_ICE_PISCES ORCA2_ICE_OBS_ST 'cfgs'
1059    #
1060    . ./makenemo -m ${CMP_NAM} -n ORCA2_ICE_OBS_ST -r ORCA2_ICE_PISCES -d "OCE ICE"  -j 8 add_key "key_asminc ${ADD_KEYS}" del_key "key_top ${DEL_KEYS}"
1061    cd ${SETTE_DIR}
1062    . ./param.cfg
1063    . ./all_functions.sh
1064    . ./prepare_exe_dir.sh
1065    set_valid_dir
1066    clean_valid_dir
1067    JOB_FILE=${EXE_DIR}/run_job.sh
1068    NPROC=32
1069    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1070    cd ${EXE_DIR}
1071    set_namelist namelist_cfg cn_exp \"O2L3OBS_48\"
1072    set_namelist namelist_cfg nn_it000 1
1073    set_namelist namelist_cfg nn_itend ${ITEND}
1074    set_namelist namelist_cfg ln_read_cfg .true.
1075    set_namelist namelist_cfg jpni 4
1076    set_namelist namelist_cfg jpnj 8
1077    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1078    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
1079    set_namelist namelist_cfg ln_diaobs .true.
1080    set_namelist namelist_cfg ln_t3d .true.
1081    set_namelist namelist_cfg ln_s3d .true.
1082    set_namelist namelist_cfg ln_sst .true.
1083    set_namelist namelist_cfg ln_sla .true.
1084    set_namelist namelist_cfg ln_sic .true.
1085    set_namelist namelist_cfg ln_vel3d .true.
1086    set_namelist namelist_cfg ln_bkgwri .true.
1087    set_namelist namelist_cfg ln_trainc .true.
1088    set_namelist namelist_cfg ln_dyninc .true.
1089    set_namelist namelist_cfg ln_sshinc .true.
1090    set_namelist namelist_cfg ln_asmiau .true.
1091    #remove all useless options for pisces (due to ORCA2_ICE_PISCES reference configuration)
1092    set_namelist namelist_top_cfg ln_trcdta .false.
1093    set_namelist namelist_top_cfg ln_trcbc  .false.
1094    # put ln_ironsed, ln_river, ln_ndepo, ln_dust to false
1095    # if not you need input files, and for tests is not necessary
1096    set_namelist namelist_pisces_cfg ln_varpar .false.
1097    set_namelist namelist_pisces_cfg ln_ironsed .false.
1098    set_namelist namelist_pisces_cfg ln_ironice .false.
1099    set_namelist namelist_pisces_cfg ln_hydrofe .false.
1100    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1101    if [ ${USING_MPMD} == "yes" ] ; then
1102       set_xio_using_server iodef.xml true
1103    else
1104       set_xio_using_server iodef.xml false
1105    fi
1106    cd ${SETTE_DIR}
1107    . ./prepare_job.sh input_ORCA2_ICE_OBS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1108    cd ${SETTE_DIR}
1109    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1110
1111   cd ${SETTE_DIR}
1112    export TEST_NAME="REPRO_8_4"
1113    . ./prepare_exe_dir.sh
1114    set_valid_dir
1115    clean_valid_dir
1116    JOB_FILE=${EXE_DIR}/run_job.sh
1117    NPROC=32
1118    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1119    cd ${EXE_DIR}
1120    set_namelist namelist_cfg cn_exp \"O2L3OBS_84\"
1121    set_namelist namelist_cfg nn_it000 1
1122    set_namelist namelist_cfg nn_itend ${ITEND}
1123    set_namelist namelist_cfg ln_read_cfg .true.
1124    set_namelist namelist_cfg jpni 8
1125    set_namelist namelist_cfg jpnj 4
1126    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1127    set_namelist namelist_cfg sn_cfctl%l_trcstat .true.
1128    set_namelist namelist_cfg ln_diaobs .true.
1129    set_namelist namelist_cfg ln_t3d .true.
1130    set_namelist namelist_cfg ln_s3d .true.
1131    set_namelist namelist_cfg ln_sst .true.
1132    set_namelist namelist_cfg ln_sla .true.
1133    set_namelist namelist_cfg ln_sic .true.
1134    set_namelist namelist_cfg ln_vel3d .true.
1135    set_namelist namelist_cfg ln_bkgwri .true.
1136    set_namelist namelist_cfg ln_trainc .true.
1137    set_namelist namelist_cfg ln_dyninc .true.
1138    set_namelist namelist_cfg ln_sshinc .true.
1139    set_namelist namelist_cfg ln_asmiau .true.
1140    #remove all useless options for pisces (due to ORCA2_ICE_PISCES reference configuration)
1141    set_namelist namelist_top_cfg ln_trcdta .false.
1142    set_namelist namelist_top_cfg ln_trcbc  .false.
1143    # put ln_ironsed, ln_river, ln_ndepo, ln_dust to false
1144    # if not you need input files, and for tests is not necessary
1145    set_namelist namelist_pisces_cfg ln_varpar .false.
1146    set_namelist namelist_pisces_cfg ln_ironsed .false.
1147    set_namelist namelist_pisces_cfg ln_ironice .false.
1148    set_namelist namelist_pisces_cfg ln_hydrofe .false.
1149    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1150    if [ ${USING_MPMD} == "yes" ] ; then
1151       set_xio_using_server iodef.xml true
1152    else
1153       set_xio_using_server iodef.xml false
1154    fi
1155    cd ${SETTE_DIR}
1156    . ./prepare_job.sh input_ORCA2_ICE_OBS.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1157    cd ${SETTE_DIR}
1158    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1159fi
1160
1161# ------------
1162# AGRIF ICE
1163# -----------
1164if [ ${config} == "AGRIF" ] && [ ${DO_RESTART} == "1" ] ;  then
1165## Restartability tests
1166    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
1167    then
1168   ITEND=4   # 6h
1169    else
1170   ITEND=20  # 1d and 6h
1171    fi
1172    ITRST=$(   printf "%08d" $(( ${ITEND} / 2 )) )
1173    ITRST_1=$( printf "%08d" $(( ${ITEND} / 2 )) )
1174    ITRST_2=$( printf "%08d" $(( ${ITEND} * 4 / 2 )) )
1175    ITRST_3=$( printf "%08d" $(( ${ITEND} * 4 * 3 / 2 )) )
1176    export TEST_NAME="LONG"
1177    cd ${MAIN_DIR}
1178    #
1179    # syncronisation if target directory/file exist (not done by makenemo)
1180    . ${SETTE_DIR}/all_functions.sh
1181    sync_config  AGRIF_DEMO AGRIF_DEMO_ST 'cfgs'
1182    clean_config AGRIF_DEMO AGRIF_DEMO_ST 'cfgs'
1183    #
1184    . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_ST -r AGRIF_DEMO -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
1185    cd ${SETTE_DIR}
1186    . ./param.cfg
1187    . ./all_functions.sh
1188    . ./prepare_exe_dir.sh
1189    set_valid_dir
1190    clean_valid_dir
1191    JOB_FILE=${EXE_DIR}/run_job.sh
1192    NPROC=16
1193    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1194    cd ${EXE_DIR}
1195    set_namelist namelist_cfg cn_exp \"AGRIF_LONG\"
1196    set_namelist namelist_cfg nn_it000 1
1197    set_namelist namelist_cfg nn_itend ${ITEND}
1198    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1199    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1200    set_namelist 1_namelist_cfg cn_exp \"AGRIF_LONG\"
1201    set_namelist 1_namelist_cfg nn_it000 1
1202    set_namelist 1_namelist_cfg nn_itend ${ITEND}
1203    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1204    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
1205    set_namelist 2_namelist_cfg cn_exp \"AGRIF_LONG\"
1206    set_namelist 2_namelist_cfg nn_it000 1
1207    set_namelist 2_namelist_cfg nn_itend $(( ${ITEND} * 4 ))
1208    set_namelist 2_namelist_cfg nn_stock $(( ${ITEND} * 4 / 2 ))
1209    set_namelist 2_namelist_cfg sn_cfctl%l_runstat .true.
1210    set_namelist 3_namelist_cfg cn_exp \"AGRIF_LONG\"
1211    set_namelist 3_namelist_cfg nn_it000 1
1212    set_namelist 3_namelist_cfg nn_itend $(( ${ITEND} * 4 * 3 ))
1213    set_namelist 3_namelist_cfg nn_stock $(( ${ITEND} * 4 * 3 / 2 ))
1214    set_namelist 3_namelist_cfg sn_cfctl%l_runstat .true.
1215
1216    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1217    if [ ${USING_MPMD} == "yes" ] ; then
1218       set_xio_using_server iodef.xml true
1219    else
1220       set_xio_using_server iodef.xml false
1221    fi
1222    cd ${SETTE_DIR}
1223    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1224   
1225    cd ${SETTE_DIR}
1226    export TEST_NAME="SHORT"
1227    . ./prepare_exe_dir.sh
1228    set_valid_dir
1229    clean_valid_dir
1230    cd ${EXE_DIR}
1231    set_namelist namelist_cfg cn_exp \"AGRIF_SHORT\"
1232    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
1233    set_namelist namelist_cfg nn_itend ${ITEND}
1234    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1235    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1236    set_namelist namelist_cfg ln_rstart .true.
1237    set_namelist namelist_cfg nn_rstctl 2
1238    set_namelist 1_namelist_cfg cn_exp \"AGRIF_SHORT\"
1239    set_namelist 1_namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
1240    set_namelist 1_namelist_cfg nn_itend ${ITEND}
1241    set_namelist 1_namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1242    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
1243    set_namelist 1_namelist_cfg ln_rstart .true.
1244    set_namelist 1_namelist_cfg nn_rstctl 2
1245    set_namelist 2_namelist_cfg cn_exp \"AGRIF_SHORT\"
1246    set_namelist 2_namelist_cfg nn_it000 $(( ${ITEND} * 4 / 2 + 1 ))
1247    set_namelist 2_namelist_cfg nn_itend $(( ${ITEND} * 4 ))
1248    set_namelist 2_namelist_cfg nn_stock $(( ${ITEND} * 4 / 2 ))
1249    set_namelist 2_namelist_cfg sn_cfctl%l_runstat .true.
1250    set_namelist 2_namelist_cfg ln_rstart .true.
1251    set_namelist 2_namelist_cfg nn_rstctl 2
1252    set_namelist 3_namelist_cfg cn_exp \"AGRIF_SHORT\"
1253    set_namelist 3_namelist_cfg nn_it000 $(( ${ITEND} * 4 * 3 / 2 + 1 ))
1254    set_namelist 3_namelist_cfg nn_itend $(( ${ITEND} * 4 * 3 ))
1255    set_namelist 3_namelist_cfg nn_stock $(( ${ITEND} * 4 * 3 / 2 ))
1256    set_namelist 3_namelist_cfg sn_cfctl%l_runstat .true.
1257    set_namelist 3_namelist_cfg ln_rstart .true.
1258    set_namelist 3_namelist_cfg nn_rstctl 2
1259    set_namelist namelist_cfg cn_ocerst_in \"AGRIF_LONG_${ITRST}_restart\"
1260    set_namelist namelist_ice_cfg cn_icerst_in \"AGRIF_LONG_${ITRST}_restart_ice\"
1261    set_namelist 1_namelist_cfg cn_ocerst_in \"AGRIF_LONG_${ITRST_1}_restart\"
1262    set_namelist 1_namelist_ice_cfg cn_icerst_in \"AGRIF_LONG_${ITRST_1}_restart_ice\"
1263    set_namelist 2_namelist_cfg cn_ocerst_in \"AGRIF_LONG_${ITRST_2}_restart\"
1264    set_namelist 2_namelist_ice_cfg cn_icerst_in \"AGRIF_LONG_${ITRST_2}_restart_ice\"
1265    set_namelist 3_namelist_cfg cn_ocerst_in \"AGRIF_LONG_${ITRST_3}_restart\"
1266    set_namelist 3_namelist_ice_cfg cn_icerst_in \"AGRIF_LONG_${ITRST_3}_restart_ice\"
1267
1268    for (( i=1; i<=$NPROC; i++)) ; do
1269        L_NPROC=$(( $i - 1 ))
1270        L_NPROC=`printf "%04d\n" ${L_NPROC}`
1271        ln -sf ../LONG/AGRIF_LONG_${ITRST}_restart_${L_NPROC}.nc .
1272        ln -sf ../LONG/AGRIF_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
1273        ln -sf ../LONG/1_AGRIF_LONG_${ITRST_1}_restart_${L_NPROC}.nc .
1274        ln -sf ../LONG/1_AGRIF_LONG_${ITRST_1}_restart_ice_${L_NPROC}.nc .
1275        ln -sf ../LONG/2_AGRIF_LONG_${ITRST_2}_restart_${L_NPROC}.nc .
1276        ln -sf ../LONG/2_AGRIF_LONG_${ITRST_2}_restart_ice_${L_NPROC}.nc .
1277        ln -sf ../LONG/3_AGRIF_LONG_${ITRST_3}_restart_${L_NPROC}.nc .
1278        ln -sf ../LONG/3_AGRIF_LONG_${ITRST_3}_restart_ice_${L_NPROC}.nc .
1279    done
1280    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1281    if [ ${USING_MPMD} == "yes" ] ; then
1282       set_xio_using_server iodef.xml true
1283    else
1284       set_xio_using_server iodef.xml false
1285    fi
1286    cd ${SETTE_DIR}
1287    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1288    cd ${SETTE_DIR}
1289    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1290
1291fi
1292
1293if [ ${config} == "AGRIF" ] && [ ${DO_REPRO} == "1" ] ;  then
1294## Reproducibility tests
1295    export TEST_NAME="REPRO_2_8"
1296    cd ${MAIN_DIR}
1297    cd ${SETTE_DIR}
1298    . ./param.cfg
1299    . ./all_functions.sh
1300    . ./prepare_exe_dir.sh
1301    set_valid_dir
1302    clean_valid_dir
1303    JOB_FILE=${EXE_DIR}/run_job.sh
1304    NPROC=16
1305    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1306    cd ${EXE_DIR}
1307    set_namelist namelist_cfg cn_exp \"AGRIF_28\"
1308    set_namelist namelist_cfg nn_it000 1
1309    set_namelist namelist_cfg nn_itend ${ITEND}
1310    set_namelist namelist_cfg jpni 2
1311    set_namelist namelist_cfg jpnj 8
1312    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1313    set_namelist 1_namelist_cfg cn_exp \"AGRIF_28\"
1314    set_namelist 1_namelist_cfg nn_it000 1
1315    set_namelist 1_namelist_cfg nn_itend ${ITEND}
1316    set_namelist 1_namelist_cfg jpni 2
1317    set_namelist 1_namelist_cfg jpnj 8
1318    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
1319    set_namelist 2_namelist_cfg cn_exp \"AGRIF_28\"
1320    set_namelist 2_namelist_cfg nn_it000 1
1321    set_namelist 2_namelist_cfg nn_itend $(( ${ITEND} * 4 ))
1322    set_namelist 2_namelist_cfg jpni 2
1323    set_namelist 2_namelist_cfg jpnj 8
1324    set_namelist 2_namelist_cfg sn_cfctl%l_runstat .true.
1325    set_namelist 3_namelist_cfg cn_exp \"AGRIF_28\"
1326    set_namelist 3_namelist_cfg nn_it000 1
1327    set_namelist 3_namelist_cfg nn_itend $(( ${ITEND} * 4 * 3 ))
1328    set_namelist 3_namelist_cfg jpni 2
1329    set_namelist 3_namelist_cfg jpnj 8
1330    set_namelist 3_namelist_cfg sn_cfctl%l_runstat .true.
1331
1332    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1333    if [ ${USING_MPMD} == "yes" ] ; then
1334       set_xio_using_server iodef.xml true
1335    else
1336       set_xio_using_server iodef.xml false
1337    fi
1338    cd ${SETTE_DIR}
1339    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1340    cd ${SETTE_DIR}
1341    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1342
1343    cd ${SETTE_DIR}
1344    export TEST_NAME="REPRO_4_4"
1345    . ./prepare_exe_dir.sh
1346    set_valid_dir
1347    clean_valid_dir
1348    JOB_FILE=${EXE_DIR}/run_job.sh
1349    NPROC=16
1350    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1351    cd ${EXE_DIR}
1352    set_namelist namelist_cfg cn_exp \"AGRIF_44\"
1353    set_namelist namelist_cfg nn_it000 1
1354    set_namelist namelist_cfg nn_itend ${ITEND}
1355    set_namelist namelist_cfg jpni 4
1356    set_namelist namelist_cfg jpnj 4
1357    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1358    set_namelist 1_namelist_cfg cn_exp \"AGRIF_44\"
1359    set_namelist 1_namelist_cfg nn_it000 1
1360    set_namelist 1_namelist_cfg nn_itend ${ITEND}
1361    set_namelist 1_namelist_cfg jpni 4
1362    set_namelist 1_namelist_cfg jpnj 4
1363    set_namelist 1_namelist_cfg sn_cfctl%l_runstat .true.
1364    set_namelist 2_namelist_cfg cn_exp \"AGRIF_44\"
1365    set_namelist 2_namelist_cfg nn_it000 1
1366    set_namelist 2_namelist_cfg nn_itend $(( ${ITEND} * 4 ))
1367    set_namelist 2_namelist_cfg jpni 4
1368    set_namelist 2_namelist_cfg jpnj 4
1369    set_namelist 2_namelist_cfg sn_cfctl%l_runstat .true.
1370    set_namelist 3_namelist_cfg cn_exp \"AGRIF_44\"
1371    set_namelist 3_namelist_cfg nn_it000 1
1372    set_namelist 3_namelist_cfg nn_itend $(( ${ITEND} * 4 * 3 ))
1373    set_namelist 3_namelist_cfg jpni 4
1374    set_namelist 3_namelist_cfg jpnj 4
1375    set_namelist 3_namelist_cfg sn_cfctl%l_runstat .true.
1376
1377    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1378    if [ ${USING_MPMD} == "yes" ] ; then
1379       set_xio_using_server iodef.xml true
1380    else
1381       set_xio_using_server iodef.xml false
1382    fi
1383    cd ${SETTE_DIR}
1384    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1385    cd ${SETTE_DIR}
1386    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1387
1388fi
1389
1390if [ ${config} == "AGRIF" ] && [ ${DO_CORRUPT} == "1" ] ;  then
1391## test code corruption with AGRIF (phase 1) ==> Compile with key_agrif but run with no zoom
1392    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
1393    then
1394   ITEND=16   # 1d
1395    else
1396   ITEND=150  # 5d and 9h
1397    fi
1398    export TEST_NAME="ORCA2"
1399    cd ${MAIN_DIR}
1400    cd ${SETTE_DIR}
1401    . ./param.cfg
1402    . ./all_functions.sh
1403    . ./prepare_exe_dir.sh
1404    set_valid_dir
1405    clean_valid_dir
1406    JOB_FILE=${EXE_DIR}/run_job.sh
1407    NPROC=32
1408    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1409    cd ${EXE_DIR}
1410    set_namelist namelist_cfg cn_exp \"ORCA2\"
1411    set_namelist namelist_cfg nn_it000 1
1412    set_namelist namelist_cfg nn_itend ${ITEND}
1413    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1414
1415#   Set the number of fine grids to zero:   
1416    sed -i "1s/.*/0/" ${EXE_DIR}/AGRIF_FixedGrids.in
1417
1418    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1419    if [ ${USING_MPMD} == "yes" ] ; then
1420       set_xio_using_server iodef.xml true
1421    else
1422       set_xio_using_server iodef.xml false
1423    fi
1424    cd ${SETTE_DIR}
1425    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1426    cd ${SETTE_DIR}
1427    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1428
1429fi
1430
1431
1432## test code corruption with AGRIF (phase 2) ==> Compile without key_agrif (to be compared with AGRIF_DEMO_ST/ORCA2)
1433if [ ${config} == "AGRIF" ] && [ ${DO_CORRUPT} == "1" ] ;  then
1434    export TEST_NAME="ORCA2"
1435    cd ${MAIN_DIR}
1436    #
1437    # syncronisation if target directory/file exist (not done by makenemo)
1438    . ${SETTE_DIR}/all_functions.sh
1439    sync_config  AGRIF_DEMO AGRIF_DEMO_NOAGRIF_ST 'cfgs'
1440    clean_config AGRIF_DEMO AGRIF_DEMO_NOAGRIF_ST 'cfgs'
1441    #
1442    . ./makenemo -m ${CMP_NAM} -n AGRIF_DEMO_NOAGRIF_ST -r AGRIF_DEMO -j 8 add_key "${ADD_KEYS}" del_key "key_agrif ${DEL_KEYS}"
1443    cd ${SETTE_DIR}
1444    . ./param.cfg
1445    . ./all_functions.sh
1446    . ./prepare_exe_dir.sh
1447    set_valid_dir
1448    clean_valid_dir
1449    JOB_FILE=${EXE_DIR}/run_job.sh
1450    NPROC=32
1451    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1452    cd ${EXE_DIR}
1453    set_namelist namelist_cfg cn_exp \"ORCA2\"
1454    set_namelist namelist_cfg nn_it000 1
1455    set_namelist namelist_cfg nn_itend ${ITEND}
1456    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1457#
1458    #if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1459    if [ ${USING_MPMD} == "yes" ] ; then
1460       set_xio_using_server iodef.xml true
1461    else
1462       set_xio_using_server iodef.xml false
1463    fi
1464    cd ${SETTE_DIR}
1465    . ./prepare_job.sh input_AGRIF.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1466    cd ${SETTE_DIR}
1467    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1468
1469fi
1470
1471# -------
1472# WED025
1473# -------
1474if [ ${config} == "WED025" ] && [ ${DO_RESTART} == "1" ] ;  then
1475## Restartability tests
1476    if [ $( echo ${CMP_NAM} | grep -ic debug ) -eq 1 ]
1477    then
1478   ITEND=12   # 4h
1479    else
1480   ITEND=720  # 10 days
1481    fi
1482    ITRST=$( printf "%08d" $(( ${ITEND} / 2 )) )
1483    export TEST_NAME="LONG"
1484    cd ${MAIN_DIR}
1485    #
1486    # syncronisation if target directory/file exist (not done by makenemo)
1487    . ${SETTE_DIR}/all_functions.sh
1488    sync_config  WED025 WED025_ST 'cfgs'
1489    clean_config WED025 WED025_ST 'cfgs'
1490    #
1491    . ./makenemo -m ${CMP_NAM} -n WED025_ST -r WED025 -j 8 add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
1492    cd ${SETTE_DIR}
1493    . ./param.cfg
1494    . ./all_functions.sh
1495    . ./prepare_exe_dir.sh
1496    set_valid_dir
1497    clean_valid_dir
1498    JOB_FILE=${EXE_DIR}/run_job.sh
1499    NPROC=32
1500    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1501    cd ${EXE_DIR}
1502    set_namelist namelist_cfg cn_exp \"WED025_LONG\"
1503    set_namelist namelist_cfg nn_it000 1
1504    set_namelist namelist_cfg nn_itend ${ITEND}
1505    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1506    set_namelist namelist_cfg nn_date0 20000115
1507    set_namelist namelist_cfg jpni 4
1508    set_namelist namelist_cfg jpnj 8
1509    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1510    #set_namelist namelist_ice_cfg ln_icediachk .true.
1511    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1512    if [ ${USING_MPMD} == "yes" ] ; then
1513       set_xio_using_server iodef.xml true
1514    else
1515       set_xio_using_server iodef.xml false
1516    fi
1517    cd ${SETTE_DIR}
1518    . ./prepare_job.sh input_WED025.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1519   
1520    cd ${SETTE_DIR}
1521    export TEST_NAME="SHORT"
1522    . ./prepare_exe_dir.sh
1523    set_valid_dir
1524    clean_valid_dir
1525    cd ${EXE_DIR}
1526    set_namelist namelist_cfg cn_exp \"WED025_SHORT\"
1527    set_namelist namelist_cfg nn_it000 $(( ${ITEND} / 2 + 1 ))
1528    set_namelist namelist_cfg nn_itend ${ITEND}
1529    set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
1530    set_namelist namelist_cfg ln_rstart .true.
1531    set_namelist namelist_cfg nn_rstctl 2
1532    set_namelist namelist_cfg jpni 4
1533    set_namelist namelist_cfg jpnj 8
1534    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1535    set_namelist namelist_cfg cn_ocerst_in \"WED025_LONG_${ITRST}_restart\"
1536    set_namelist namelist_ice_cfg cn_icerst_in \"WED025_LONG_${ITRST}_restart_ice\"
1537    for (( i=1; i<=$NPROC; i++)) ; do
1538        L_NPROC=$(( $i - 1 ))
1539        L_NPROC=`printf "%04d\n" ${L_NPROC}`
1540        ln -sf ../LONG/WED025_LONG_${ITRST}_restart_${L_NPROC}.nc .
1541        ln -sf ../LONG/WED025_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
1542    done
1543    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1544    if [ ${USING_MPMD} == "yes" ] ; then
1545       set_xio_using_server iodef.xml true
1546    else
1547       set_xio_using_server iodef.xml false
1548    fi
1549    cd ${SETTE_DIR}
1550    . ./prepare_job.sh input_WED025.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1551    cd ${SETTE_DIR}
1552    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1553
1554fi
1555
1556if [ ${config} == "WED025" ] && [ ${DO_REPRO} == "1" ] ;  then
1557## Reproducibility tests
1558    export TEST_NAME="REPRO_5_6"
1559    cd ${MAIN_DIR}
1560    cd ${SETTE_DIR}
1561    . ./param.cfg
1562    . ./all_functions.sh
1563    . ./prepare_exe_dir.sh
1564    set_valid_dir
1565    clean_valid_dir
1566    JOB_FILE=${EXE_DIR}/run_job.sh
1567    NPROC=32
1568    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1569    cd ${EXE_DIR}
1570    set_namelist namelist_cfg cn_exp \"WED025_56\"
1571    set_namelist namelist_cfg nn_it000 1
1572    set_namelist namelist_cfg nn_itend ${ITEND}
1573    set_namelist namelist_cfg nn_date0 20000115
1574    set_namelist namelist_cfg jpni 6
1575    set_namelist namelist_cfg jpnj 7
1576    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1577    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1578    if [ ${USING_MPMD} == "yes" ] ; then
1579       set_xio_using_server iodef.xml true
1580    else
1581       set_xio_using_server iodef.xml false
1582    fi
1583    cd ${SETTE_DIR}
1584    . ./prepare_job.sh input_WED025.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1585    cd ${SETTE_DIR}
1586    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1587
1588    cd ${SETTE_DIR}
1589    export TEST_NAME="REPRO_8_4"
1590    . ./prepare_exe_dir.sh
1591    set_valid_dir
1592    clean_valid_dir
1593    JOB_FILE=${EXE_DIR}/run_job.sh
1594    NPROC=32
1595    if [ -f ${JOB_FILE} ] ; then \rm ${JOB_FILE} ; fi
1596    cd ${EXE_DIR}
1597    set_namelist namelist_cfg cn_exp \"WED025_84\"
1598    set_namelist namelist_cfg nn_it000 1
1599    set_namelist namelist_cfg nn_itend ${ITEND}
1600    set_namelist namelist_cfg nn_date0 20000115
1601    set_namelist namelist_cfg jpni 8
1602    set_namelist namelist_cfg jpnj 4
1603    set_namelist namelist_cfg sn_cfctl%l_runstat .true.
1604    if [ ${SETTE_TIMING} == "yes" ]  ; then set_namelist namelist_cfg ln_timing .true. ; fi
1605    if [ ${USING_MPMD} == "yes" ] ; then
1606       set_xio_using_server iodef.xml true
1607    else
1608       set_xio_using_server iodef.xml false
1609    fi
1610    cd ${SETTE_DIR}
1611    . ./prepare_job.sh input_WED025.cfg $NPROC ${TEST_NAME} ${MPIRUN_FLAG} ${JOB_FILE} ${NUM_XIOSERVERS} ${NEMO_VALID}
1612    cd ${SETTE_DIR}
1613    . ./fcm_job.sh $NPROC ${JOB_FILE} ${INTERACT_FLAG} ${MPIRUN_FLAG}
1614fi
1615
1616
1617done
1618#
1619# Return to SETTE_DIR (last fcm_job.sh will have moved to EXE_DIR)
1620cd ${SETTE_DIR}
Note: See TracBrowser for help on using the repository browser.