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.sh in branches/2011/dev_r2855_LOCEAN7_SETTE/NEMOGCM/SETTE – NEMO

source: branches/2011/dev_r2855_LOCEAN7_SETTE/NEMOGCM/SETTE/sette.sh @ 2890

Last change on this file since 2890 was 2890, checked in by flavoni, 13 years ago

update SETTE

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 14.9 KB
Line 
1#!/bin/bash
2#############################################################
3# Author : Simona Flavoni for NEMO
4# Contact : sflod@locean-ipsl.upmc.fr
5#
6# sette.sh   : principal script of SET TEsts for NEMO (SETTE)
7# ----------------------------------------------------------------------
8# NEMO/SETTE , NEMO Consortium (2010)
9# Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
10# ----------------------------------------------------------------------
11#
12#############################################################
13#set -x
14set -o posix
15#set -u
16#set -e
17#+
18#
19# ================
20# sette.sh
21# ================
22#
23# ----------------------------------------------
24# Set of tests for NEMO
25# ----------------------------------------------
26#
27# SYNOPSIS
28# ========
29#
30# ::
31#
32#  $ ./sette.sh
33#
34# DESCRIPTION
35# ===========
36#
37# Variables to be checked by user:
38#
39# COMPILER : name of compiler as defined in NEMOGCM/ARCH directory
40#
41# BATCH_COMMAND :  name of the command for batch submission
42#
43# MPI_INTERACT : 
44#
45#         for MPP tests, "no" for batch execution, "yes" for interactive execution
46#
47#         NOTE: for run with 1 process tests are run always in MPI_INTERACT="yes"
48#
49# Principal script is sette.sh, that calls
50#
51#  makenemo
52#
53#   creates the exectuable in ${CONFIG_NAME}/BLD/bin/nemo.exe  (and its link opa in ${CONFIG_NAME}/EXP00)
54#
55#  param.cfg : sets and loads following directories:
56#
57#   FORCING_DIR : is the directory for forcing files (tarfile)
58#
59#   INPUT_DIR : is the directory for input files storing
60#
61#   TMPDIR : is the temporary directory (if needed)
62#
63#   NEMO_VALIDATION_DIR : is the validation directory
64#
65#   (NOTE: this file is the same for all configrations to be tested with sette)
66#
67#
68#  all_functions.sh : loads functions used by sette (note: new functions can be added here)
69#
70#   set_namelist : function declared in all_functions that set namelist parameters for tests
71#
72#   post_test_tidyup : creates validation storage directory and copy needed output files (solver.stat and ocean.output) in it after execution of test.
73#
74#   Tree of VALIDATION is:
75#
76#   NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE)
77#
78#
79#  prepare_exe_dir.sh : defines and creates directory where the test is executed
80#
81#       execution directory takes name of TEST_NAME defined in every test in sette.sh
82#
83#       ( each test in executed in its own directory )
84#
85#
86#  fcm_job.sh
87#
88#   runs job in interactive or batch mode : all jobs using 1 process are run interactive, and all MPP jobs are
89#
90#   run in batch (MPI_INTERACT="no") or interactive (MPI_INTERACT="yes") see sette.sh and BATCH_TEMPLATE directory
91#
92#   (note this job needs to have an input_CONFIG.cfg in which can be found input tar file)
93#
94#  NOTE: if job is not launched for some problems you have executable ready in ${EXE_DIR} directory
95#
96#  NOTE: the changed namelists are leaved in ${EXE_DIR} directory whereas original namelist remains in ${NEW_CONF}/EXP00
97#
98#  in ${SETTE_DIR} is created output.sette with the echo of executed commands
99#
100#  if sette.sh is stopped in output.sette there is written the last command executed by sette.sh
101#
102#  if you run: ./sette.sh 2>&1 | tee out.sette
103#
104#  in ${SETTE_DIR} out.sette is redirected standard error & standard output
105#
106#
107# EXAMPLES
108# ========
109#
110# ::
111#
112#  $ ./sette.sh
113#
114#
115# TODO
116# ====
117#
118# option debug
119#
120# EVOLUTIONS
121# ==========
122#
123# $Id$
124#
125#   * creation
126#
127#-
128#
129#-
130# Compiler among those in NEMOGCM/ARCH
131COMPILER=PW6_VARGAS
132export BATCH_COMMAND=llsubmit
133export MPI_INTERACT="no"
134
135# Directory to run the tests
136SETTE_DIR=$(cd $(dirname "$0"); pwd)
137MAIN_DIR=${SETTE_DIR%/SETTE}
138CONFIG_DIR=${MAIN_DIR}/CONFIG
139TOOLS_DIR=${MAIN_DIR}/TOOLS
140COMPIL_DIR=${TOOLS_DIR}/COMPILE
141
142CMP_NAM=${1:-$COMPILER}
143# Copy job_batch_COMPILER file for specific compiler into job_batch_template
144cd ${SETTE_DIR}
145cp BATCH_TEMPLATE/batch-${COMPILER} job_batch_template || exit
146
147for config in 1 2 3 4 5 6 7 8
148do
149
150if [ ${config} -eq 1 ] ;  then
151    # Restartability tests for GYRE_LOBSTER
152    export TEST_NAME="LONG"
153    cd ${SETTE_DIR}
154    . ../CONFIG/makenemo -m ${CMP_NAM} -n GYRELOB_LONG -r GYRE_LOBSTER del_key "key_diatrc"
155    cd ${SETTE_DIR}
156    . param.cfg
157    . all_functions.sh
158    . prepare_exe_dir.sh
159    cd ${EXE_DIR}
160    set_namelist namelist cn_exp \"GYRELOB_LONG\"
161    set_namelist namelist nn_it000 1
162    set_namelist namelist nn_itend 120
163    set_namelist namelist nn_stock 60
164    set_namelist namelist ln_clobber .true.
165    set_namelist namelist_top ln_trcrad .false.
166    cd ${SETTE_DIR}
167    . ./fcm_job.sh input_GYRE.cfg 1 ${TEST_NAME}
168
169    cd ${SETTE_DIR}
170    export TEST_NAME="SHORT"
171    . prepare_exe_dir.sh
172    cd ${EXE_DIR}
173    set_namelist namelist cn_exp \"GYRELOB_SHORT\"
174    set_namelist namelist nn_it000 61
175    set_namelist namelist nn_itend 120
176    set_namelist namelist nn_stock 60
177    set_namelist namelist ln_rstart .true.
178    set_namelist namelist nn_rstctl 2
179    set_namelist namelist ln_clobber .true.
180    cp ..\/LONG\/GYRELOB_LONG_00000060_restart.nc .
181    set_namelist namelist cn_ocerst_in \"GYRELOB_LONG_00000060_restart.nc\"
182    set_namelist namelist_top ln_trcrad .false.
183    set_namelist namelist_top ln_rsttr .true.
184    set_namelist namelist_top nn_rsttr 2
185    cp ..\/LONG\/GYRELOB_LONG_00000060_restart_trc.nc .
186    set_namelist namelist_top cn_trcrst_in \"GYRELOB_LONG_00000060_restart_trc\"
187    cd ${SETTE_DIR}
188    . ./fcm_job.sh input_GYRE.cfg 1 ${TEST_NAME}
189fi
190
191if [ ${config} -eq 2 ] ;  then
192# Restartability tests for ORCA2_LIM_PISCES
193    export TEST_NAME="LONG"
194    cd ${SETTE_DIR}
195    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2LIMPIS_LONG -r ORCA2_LIM_PISCES del_key "key_dtatrc key_diatrc"
196    cd ${SETTE_DIR}
197    . param.cfg
198    . all_functions.sh
199    . prepare_exe_dir.sh
200    cd ${EXE_DIR}
201    set_namelist namelist cn_exp \"O2LP_LONG\"
202    set_namelist namelist nn_it000 1
203    set_namelist namelist nn_itend 150
204    set_namelist namelist nn_stock 75
205    set_namelist namelist ln_clobber .true.
206    set_namelist namelist_top ln_trcrad .false.
207    # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false
208    # if not you need input files, and for tests is not necessary
209    set_namelist namelist_pisces ln_pisdmp .false.
210    set_namelist namelist_pisces ln_dustfer .false.
211    set_namelist namelist_pisces ln_river .false.
212    set_namelist namelist_pisces ln_ndepo .false.
213    set_namelist namelist_pisces ln_sedinput .false.
214    cd ${SETTE_DIR}
215    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 ${TEST_NAME}
216   
217    cd ${SETTE_DIR}
218    export TEST_NAME="SHORT"
219    . prepare_exe_dir.sh
220    cd ${EXE_DIR}
221    set_namelist namelist cn_exp \"O2LP_SHORT\"
222    set_namelist namelist nn_it000 76
223    set_namelist namelist nn_itend 150
224    set_namelist namelist nn_stock 75
225    set_namelist namelist ln_rstart .true.
226    set_namelist namelist nn_rstctl 2
227    set_namelist namelist ln_clobber .true.
228    cp ../LONG/O2LP_LONG_00000075_restart.nc .
229    set_namelist namelist cn_ocerst_in \"O2LP_LONG_00000075_restart\"
230    cp ../LONG/O2LP_LONG_00000075_restart_ice.nc .
231    set_namelist namelist_ice cn_icerst_in \"O2LP_LONG_00000075_restart_ice\"
232    set_namelist namelist_top ln_trcrad .false.
233    set_namelist namelist_top ln_rsttr .true.
234    set_namelist namelist_top nn_rsttr 2
235    cp ../LONG/O2LP_LONG_00000075_restart_trc.nc .
236    set_namelist namelist_top cn_trcrst_in \"O2LP_LONG_00000075_restart_trc\"
237    # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput
238    # if not you need input files, and for tests is not necessary
239    set_namelist namelist_pisces ln_pisdmp .false.
240    set_namelist namelist_pisces ln_dustfer .false.
241    set_namelist namelist_pisces ln_river .false.
242    set_namelist namelist_pisces ln_ndepo .false.
243    set_namelist namelist_pisces ln_sedinput .false.
244    cd ${SETTE_DIR}
245    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 ${TEST_NAME}
246fi
247
248if [ ${config} -eq 3 ] ;  then
249    ## Restartability tests for POMME
250    export TEST_NAME="LONG"
251    cd ${SETTE_DIR}
252    . ../CONFIG/makenemo -m ${CMP_NAM} -n POMME_LONG -r POMME
253    cd ${SETTE_DIR}
254    . param.cfg
255    . all_functions.sh
256    . prepare_exe_dir.sh
257    cd ${EXE_DIR}
258    set_namelist namelist cn_exp \"POMME_LONG\"
259    set_namelist namelist nn_it000 1
260    set_namelist namelist nn_stock 300
261    set_namelist namelist nn_itend 600
262    set_namelist namelist ln_clobber .true.
263    cd ${SETTE_DIR}
264    . ./fcm_job.sh input_POMME.cfg 1 ${TEST_NAME}
265   
266    cd ${SETTE_DIR}
267    export TEST_NAME="SHORT"
268    . prepare_exe_dir.sh
269    cd ${EXE_DIR}
270    set_namelist namelist cn_exp \"POMME_SHORT\"
271    set_namelist namelist nn_it000 301
272    set_namelist namelist nn_itend 600
273    set_namelist namelist ln_rstart .true.
274    set_namelist namelist nn_rstctl 2
275    set_namelist namelist ln_clobber .true.
276    cp ../LONG/POMME_LONG_00000300_restart.nc .
277    set_namelist namelist cn_ocerst_in \"POMME_LONG_00000300_restart\"
278    cp ../LONG/restart.obc.output restart.obc
279    #mv restart.obc.output restart.obc
280    cd ${SETTE_DIR}
281    . ./fcm_job.sh input_POMME.cfg 1 ${TEST_NAME}
282fi
283
284if [ ${config} -eq 4 ] ;  then
285    export TEST_NAME="REPRO_1_4"
286    cd ${SETTE_DIR}
287    . ../CONFIG/makenemo -m ${CMP_NAM} -n GYRELOB_4 -r GYRE_LOBSTER add_key "key_mpp_mpi key_mpp_rep" del_key "key_vectopt_loop key_diatrc"
288    cd ${SETTE_DIR}
289    . param.cfg
290    . all_functions.sh
291    . prepare_exe_dir.sh
292    cd ${EXE_DIR}
293    set_namelist namelist cn_exp \"GYRELOB_14\"
294    set_namelist namelist nn_it000 1
295    set_namelist namelist nn_itend 60
296    set_namelist namelist nn_fwb 0
297    set_namelist namelist nn_bench 0
298    set_namelist namelist ln_ctl .false.
299    set_namelist namelist ln_clobber .true.
300    set_namelist namelist jpni 1
301    set_namelist namelist jpnj 4
302    set_namelist namelist jpnij 4
303    cd ${SETTE_DIR}
304    . ./fcm_job.sh input_GYRE.cfg 4 ${TEST_NAME}
305   
306    cd ${SETTE_DIR}
307    export TEST_NAME="REPRO_2_2"
308    . prepare_exe_dir.sh
309    cd ${EXE_DIR}
310    set_namelist namelist cn_exp \"GYRELOB_22\"
311    set_namelist namelist nn_it000 1
312    set_namelist namelist nn_itend 60
313    set_namelist namelist nn_fwb 0
314    set_namelist namelist ln_ctl .false.
315    set_namelist namelist ln_clobber .true.
316    set_namelist namelist jpni 2
317    set_namelist namelist jpnj 2
318    set_namelist namelist jpnij 4
319    cd ${SETTE_DIR}
320    . ./fcm_job.sh input_GYRE.cfg 4 ${TEST_NAME}
321fi
322
323if [ ${config} -eq 5 ] ;  then
324    ## Repropducilibity tests for ORCA2_LIM_PISCES
325    export TEST_NAME="REPRO_4_4"
326    cd ${SETTE_DIR}
327    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2LIMPIS_16 -r ORCA2_LIM_PISCES add_key "key_mpp_mpi key_mpp_rep" del_key "key_v
328ectopt_loop key_dtatrc key_diatrc"
329    cd ${SETTE_DIR}
330    . param.cfg
331    . all_functions.sh
332    . prepare_exe_dir.sh
333    cd ${EXE_DIR}
334    set_namelist namelist nn_it000 1
335    set_namelist namelist nn_itend 75
336    set_namelist namelist nn_fwb 0
337    set_namelist namelist ln_ctl .false.
338    set_namelist namelist ln_clobber .true.
339    set_namelist namelist jpni 4
340    set_namelist namelist jpnj 4
341    set_namelist namelist jpnij 16
342    # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false
343    # if not you need input files, and for tests is not necessary
344    set_namelist namelist_pisces ln_pisdmp .false.
345    set_namelist namelist_pisces ln_dustfer .false.
346    set_namelist namelist_pisces ln_river .false.
347    set_namelist namelist_pisces ln_ndepo .false.
348    set_namelist namelist_pisces ln_sedinput .false.
349    cd ${SETTE_DIR}
350    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 ${TEST_NAME}
351
352    cd ${SETTE_DIR}
353    export TEST_NAME="REPRO_2_8"
354    . prepare_exe_dir.sh
355    cd ${EXE_DIR}
356    set_namelist namelist nn_it000 1
357    set_namelist namelist nn_itend 75
358    set_namelist namelist nn_fwb 0
359    set_namelist namelist ln_ctl .false.
360    set_namelist namelist ln_clobber .true.
361    set_namelist namelist jpni 2
362    set_namelist namelist jpnj 8
363    set_namelist namelist jpnij 16
364    # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false
365    # if not you need input files, and for tests is not necessary
366    set_namelist namelist_pisces ln_pisdmp .false.
367    set_namelist namelist_pisces ln_dustfer .false.
368    set_namelist namelist_pisces ln_river .false.
369    set_namelist namelist_pisces ln_ndepo .false.
370    set_namelist namelist_pisces ln_sedinput .false.
371    cd ${SETTE_DIR}
372    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 ${TEST_NAME}
373fi
374
375if [ ${config} -eq 6 ] ;  then
376    ## Reproductibility tests for POMME
377    export TEST_NAME="REPRO_1_4"
378    cd ${SETTE_DIR}
379    . ../CONFIG/makenemo -m ${CMP_NAM} -n POMME_4 -r POMME add_key "key_mpp_mpi key_mpp_rep"
380    cd ${SETTE_DIR}
381    . param.cfg
382    . all_functions.sh
383    . prepare_exe_dir.sh
384    cd ${EXE_DIR}
385    set_namelist namelist nn_it000 1
386    set_namelist namelist nn_itend 300
387    set_namelist namelist nn_fwb 0
388    set_namelist namelist ln_ctl .false.
389    set_namelist namelist ln_clobber .true.
390    set_namelist namelist jpni 1
391    set_namelist namelist jpnj 4
392    set_namelist namelist jpnij 4
393    cd ${SETTE_DIR}
394    . ./fcm_job.sh input_POMME.cfg 4 ${TEST_NAME}
395
396    cd ${SETTE_DIR}
397    export TEST_NAME="REPRO_2_2"
398    . prepare_exe_dir.sh
399    cd ${EXE_DIR}
400    set_namelist namelist nn_it000 1
401    set_namelist namelist nn_itend 300
402    set_namelist namelist nn_fwb 0
403    set_namelist namelist ln_ctl .false.
404    set_namelist namelist ln_clobber .true.
405    set_namelist namelist jpni 2
406    set_namelist namelist jpnj 2
407    set_namelist namelist jpnij 4
408    cd ${SETTE_DIR}
409    . ./fcm_job.sh input_POMME.cfg 4 ${TEST_NAME}
410fi
411
412if [ ${config} -eq 7 ] ;  then
413    ## ORCA2_LIM with Agulhas AGRIF zoom
414    export TEST_NAME="SHORT"
415    cd ${SETTE_DIR}
416    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2AGUL -r ORCA2_LIM add_key "key_agrif" del_key "key_vectopt_loop key_zdftmx"
417    cd ${SETTE_DIR}
418    . param.cfg
419    . all_functions.sh
420    . prepare_exe_dir.sh
421    cd ${EXE_DIR}
422    set_namelist namelist nn_it000 1
423    set_namelist namelist nn_itend 75
424    set_namelist namelist ln_ctl .false.
425    set_namelist namelist ln_clobber .true.
426    set_namelist 1_namelist nn_it000 1
427    set_namelist 1_namelist nn_itend 150
428    set_namelist 1_namelist ln_ctl .false.
429    set_namelist 1_namelist ln_clobber .true.
430    cd ${SETTE_DIR}
431    . ./fcm_job.sh input_ORCA2_LIM_AGRIF.cfg 1 ${TEST_NAME}
432fi
433
434if [ ${config} -eq 8 ] ;  then
435    ## ORCA2_LIM with Agulhas AGRIF zoom in MPI
436    export TEST_NAME="SHORT"
437    cd ${SETTE_DIR}
438    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2AGUL_1_2 -r ORCA2_LIM add_key "key_mpp_mpi key_agrif" del_key "key_vectopt_loop key_zdftmx"
439    cd ${SETTE_DIR}
440    . param.cfg
441    . all_functions.sh
442    . prepare_exe_dir.sh
443    cd ${EXE_DIR}
444    set_namelist namelist nn_it000 1
445    set_namelist namelist nn_itend 75
446    set_namelist namelist ln_ctl .false.
447    set_namelist namelist ln_clobber .true.
448    set_namelist namelist jpni 1
449    set_namelist namelist jpnj 2
450    set_namelist namelist jpnij 2
451    set_namelist 1_namelist nn_it000 1
452    set_namelist 1_namelist nn_itend 150
453    set_namelist 1_namelist ln_ctl .false.
454    set_namelist 1_namelist ln_clobber .true.
455    cd ${SETTE_DIR}
456    . ./fcm_job.sh input_ORCA2_LIM_AGRIF.cfg 2 ${TEST_NAME}
457fi
458
459done
Note: See TracBrowser for help on using the repository browser.