source: utils/CI/sette/param.cfg @ 13568

Last change on this file since 13568 was 13568, checked in by acc, 12 months ago

Added some new controls for SETTE.

SETTE currently carries out several types of tests: restartability, reproducibility, code
corruption (agrif-related) and, in the case of LOCK_EXCHANGE and OVERFLOW, a series of
runs with different physical options. For quick checking, such as is now the default with
a *DEBUG* arch file, a subset of these tests may be appropriate. This commit provides
that possibility by introducing a new command line option to sette.sh. Without arguments
SETTE will carry out all tests labelled as: "RESTART REPRO CORRUPT PHYOPTS". The
explicit equivalent would be:

./sette.sh -x "RESTART REPRO CORRUPT PHYOPTS"

any subset of these is allowed but RESTART is mandatory (since this compiles the code)
and will be prepended if omitted. For example:

./sette.sh

Configurations ORCA2_ICE_PISCES ORCA2_OFF_PISCES AMM12 AGRIF WED025 GYRE_PISCES SAS
ORCA2_ICE_OBS ICE_AGRIF OVERFLOW LOCK_EXCHANGE VORTEX ISOMIP+ will be tested if they
are available

Carrying out the following tests: RESTART REPRO CORRUPT PHYOPTS


Or to test restartability only on one configuration:

./sette.sh -t GYRE_PISCES -x RESTART

Configuration GYRE_PISCES will be tested if it is available

Carrying out the following tests: RESTART


Or trying to test reproducibility on its own will also invoke RESTART:

./sette.sh -t GYRE_PISCES -x REPRO

Configuration GYRE_PISCES will be tested if it is available

Carrying out the following tests: RESTART REPRO


Some subtle changes to the bash scripts have been necessary to achieve
this. Notably, param.cfg is only evaluated by sette.sh and consequently the
sette_reference-configurations.sh and sette_test-cases.sh scripts must now be run within
the same shell as sette.sh. This has been tested but there remains a possibility that
different flavours of bash may behave differently. I will hold off from updating the
svn_external reference for SETTE until this has been confirmed to work elsewhere.

One other change is the addition of an internal setting for USING_EXTRA_HALO which
mimics the USING_ICEBERGS setting within sette_reference-configurations.sh and can be
used to toggle testing with the extra halo.

This commit also introduces a debug arch file for the NOC MOBILIS system. This is an
intel-based system but has a rather dated ifort compiler (17.0.4). The -init=huge
keyword was not introduced until ifort v18. In all other arguments this arch file
matches the set recommened by Seb.

File size: 4.5 KB
Line 
1# Computer/user dependant variable needed to run sette
2#
3# REFERENCE run.stat tracer.stat you want to compare with
4# (if no change to the default, no check on result change will be done)
5NEMO_VALIDATION_REF=/path/to/reference/sette/results
6NEMO_REV_REF=0000
7#
8# ------------------------------------------------------------------------------------------
9# IMPORTANT:
10# variables (COMPILER, USING_XIOS, USING_MPMD, BATCH_CMD, BATCH_STAT, BATCH_NAME, FORCING_DIR, SVN_CMD, ADD_NOSIGNEDZERO)
11# can be exported from your shell startup files.
12# If it is the case, nothing to do
13# otherwise, you need to update the default initialisation
14#
15# ADVISE: setup the default value in your startup file if it doesn't fit your need for at least
16# SETTE_COMPILER, SETTE_BATCH_CMD, SETTE_BATCH_STAT, SETTE_BATCH_NAME, SETTE_FORCING_DIR,
17#
18# ------------------------------------------------------------------------------------------
19# COMPILER setting
20# Compiler among those in NEMOGCM/ARCH
21COMPILER=${SETTE_COMPILER:-XXXXXXXX}
22# ------------------------------------------------------------------------------------------
23#
24# BATCH command
25# command to submit a job
26BATCH_CMD=${SETTE_BATCH_CMD:-llsubmit}
27# command to check job status
28BATCH_STAT=${SETTE_BATCH_STAT:-llq}
29# generic sette job name (as it appears with $BATCH_STAT command)
30BATCH_NAME=${SETTE_BATCH_NAME:-sette}
31# ------------------------------------------------------------------------------------------
32#
33# FILES STORING paths
34# forcing files storing
35FORCING_DIR=${SETTE_FORCING_DIR:-$WORKDIR/FORCING}
36# validation files storing
37NEMO_VALIDATION_DIR=${SETTE_NEMO_VALIDATION_DIR:-$MAIN_DIR}/NEMO_VALIDATION
38# input files storing (namelist, iodef ...) (DO NOT CHANGE)
39INPUT_DIR=${CONFIG_DIR}/${NEW_CONF}/EXP00
40# ------------------------------------------------------------------------------------------
41#
42# RUN set up
43# USING_XIOS        : flag to control the activation of key_iomput
44#                      "yes" to compile using key_iomput and link to the external XIOS library
45#                      "no"  to compile without key_iomput and link to the old IOIPSL library
46USING_XIOS=${SETTE_XIOS:-"yes"}
47# USING_MPMD        : flag to control the use of stand-alone IO servers
48#                     requires USING_XIOS="yes"
49#                      "yes" to run in MPMD (detached) mode with stand-alone IO servers
50#                      "no"  to run in SPMD (attached) mode without separate IO servers
51# MPMD
52USING_MPMD=${SETTE_MPMD:-"no"}
53# generique batch scrip prefix name if MPMD set to true/false
54JOB_PREFIX_MPMD=${SETTE_JOB_PREFIX_MPMD:-batch-mpmd}
55JOB_PREFIX_NOMPMD=${SETTE_JOB_PREFIX_NOMPMD:-batch}
56# ------------------------------------------------------------------------------------------
57#
58# MISCELENIOUS
59# command for svn (some people use git svn)
60# used in sette_rpt and in all_function to display revision and build correct repository name
61SVN_CMD=${SETTE_SVN_CMD:-svn}
62# add key key_nosignedzero at the compilation step
63ADD_NOSIGNEDZERO=${SETTE_ADD_NOSIGNEDZERO:-"yes"}
64# only for IBM
65#TMPDIR=${CONFIG_DIR}/${NEW_CONF}/EXP00
66# cleaning CFG_ST
67CLEAN_CONFIGS=${SETTE_CLEAN_CONFIGS:-"no"}
68# synchronisation MY_SRC and EXP00 of CFG_ST with MY_SRC and EXPREF form CFG
69SYNC_CONFIGS=${SETTE_SYNC_CONFIGS:-"no"}
70# langage (only en_US supported). This is used to grep information form linux/svn command.
71LC_MESSAGES=en_US
72# ------------------------------------------------------------------------------------------
73#
74# LIST OF CONFIGURATIONS
75# to be updated if you added an new configuration in sette_test-cases.sh or sette_reference-configuration.sh
76if [ -z "${TEST_CONFIGS}" ]; then
77  export TEST_CONFIGS=(${SETTE_TEST_CONFIGS[@]:-"ORCA2_ICE_PISCES ORCA2_OFF_PISCES AMM12 AGRIF WED025 GYRE_PISCES SAS ORCA2_ICE_OBS ICE_AGRIF OVERFLOW LOCK_EXCHANGE VORTEX ISOMIP+"})
78fi
79#
80# TYPES OF TESTS TO PERFORM
81export DO_RESTART=1    # The restart test is always needed because this compiles the code
82export DO_REPRO=0
83export DO_CORRUPT=0
84export DO_PHYOPTS=0
85TEST_TYPES=(${SETTE_TEST_TYPES[@]:-"RESTART REPRO PHYOPTS CORRUPT"})
86if [[ ! ${TEST_TYPES[*]} =~ .*RESTART.* ]]; then export TEST_TYPES=("RESTART" ${TEST_TYPES[@]}) ;fi
87if [[ ${TEST_TYPES[*]} =~ .*REPRO.* ]]; then export DO_REPRO=1 ;fi
88if [[ ${TEST_TYPES[*]} =~ .*CORRUPT.* ]]; then export DO_CORRUPT=1 ;fi
89if [[ ${TEST_TYPES[*]} =~ .*PHYOPTS.* ]]; then export DO_PHYOPTS=1 ;fi
90# ------------------------------------------------------------------------------------------
91#
92# reporting 
93# Set number of passes (default only 1). For a second pass, set '0 1'
94RPT_PASSES=${SETTE_RPT_NPASSES:-'0'}
Note: See TracBrowser for help on using the repository browser.