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 @ 3011

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

update SETTE

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 15.8 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=X64_TITANE
132export BATCH_COMMAND=ccc_msub
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  -j 8
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 nn_solv 2
166    set_namelist namelist_top ln_diatrc .false.
167    cd ${SETTE_DIR}
168    . ./fcm_job.sh input_GYRE.cfg 1 ${TEST_NAME}
169
170    cd ${SETTE_DIR}
171    export TEST_NAME="SHORT"
172    . prepare_exe_dir.sh
173    cd ${EXE_DIR}
174    set_namelist namelist cn_exp \"GYRELOB_SHORT\"
175    set_namelist namelist nn_it000 61
176    set_namelist namelist nn_itend 120
177    set_namelist namelist nn_stock 60
178    set_namelist namelist ln_rstart .true.
179    set_namelist namelist nn_rstctl 2
180    set_namelist namelist ln_clobber .true.
181    set_namelist namelist nn_solv 2
182    cp ..\/LONG\/GYRELOB_LONG_00000060_restart.nc .
183    set_namelist namelist cn_ocerst_in \"GYRELOB_LONG_00000060_restart\"
184    set_namelist namelist_top ln_diatrc .false.
185    set_namelist namelist_top ln_rsttr .true.
186    set_namelist namelist_top nn_rsttr 2
187    cp ..\/LONG\/GYRELOB_LONG_00000060_restart_trc.nc .
188    set_namelist namelist_top cn_trcrst_in \"GYRELOB_LONG_00000060_restart_trc\"
189    cd ${SETTE_DIR}
190    . ./fcm_job.sh input_GYRE.cfg 1 ${TEST_NAME}
191fi
192
193if [ ${config} -eq 2 ] ;  then
194# Restartability tests for ORCA2_LIM_PISCES
195    export TEST_NAME="LONG"
196    cd ${SETTE_DIR}
197    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2LIMPIS_LONG -r ORCA2_LIM_PISCES -j 8
198    cd ${SETTE_DIR}
199    . param.cfg
200    . all_functions.sh
201    . prepare_exe_dir.sh
202    cd ${EXE_DIR}
203    set_namelist namelist cn_exp \"O2LP_LONG\"
204    set_namelist namelist nn_it000 1
205    set_namelist namelist nn_itend 150
206    set_namelist namelist nn_stock 75
207    set_namelist namelist ln_clobber .true.
208    set_namelist namelist nn_solv 2
209    set_namelist namelist_top ln_trcdta .false.
210    set_namelist namelist_top ln_diatrc .false.
211    set_namelist namelist_top ln_trcrad .false.
212    # put ln_pisdmp, ln_ironsed, ln_river, ln_ndepo, ln_dust to false
213    # if not you need input files, and for tests is not necessary
214    set_namelist namelist_pisces ln_pisdmp .false.
215    set_namelist namelist_pisces ln_ironsed .false.
216    set_namelist namelist_pisces ln_river .false.
217    set_namelist namelist_pisces ln_ndepo .false.
218    set_namelist namelist_pisces ln_dust .false.
219    set_namelist namelist_pisces ln_presatm .false.
220    cd ${SETTE_DIR}
221    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 ${TEST_NAME}
222   
223    cd ${SETTE_DIR}
224    export TEST_NAME="SHORT"
225    . prepare_exe_dir.sh
226    cd ${EXE_DIR}
227    set_namelist namelist cn_exp \"O2LP_SHORT\"
228    set_namelist namelist nn_it000 76
229    set_namelist namelist nn_itend 150
230    set_namelist namelist nn_stock 75
231    set_namelist namelist ln_rstart .true.
232    set_namelist namelist nn_rstctl 2
233    set_namelist namelist ln_clobber .true.
234    set_namelist namelist nn_solv 2
235    cp ../LONG/O2LP_LONG_00000075_restart*nc .
236    set_namelist namelist cn_ocerst_in \"O2LP_LONG_00000075_restart\"
237    set_namelist namelist_ice cn_icerst_in \"O2LP_LONG_00000075_restart_ice\"
238    set_namelist namelist_top ln_diatrc .false.
239    set_namelist namelist_top ln_trcrad .false.
240    set_namelist namelist_top ln_rsttr .true.
241    set_namelist namelist_top nn_rsttr 2
242    set_namelist namelist_top cn_trcrst_in \"O2LP_LONG_00000075_restart_trc\"
243    # put ln_pisdmp, ln_ironsed, ln_river, ln_ndepo, ln_dust
244    # if not you need input files, and for tests is not necessary
245    set_namelist namelist_pisces ln_pisdmp .false.
246    set_namelist namelist_pisces ln_ironsed .false.
247    set_namelist namelist_pisces ln_river .false.
248    set_namelist namelist_pisces ln_ndepo .false.
249    set_namelist namelist_pisces ln_dust .false.
250    set_namelist namelist_pisces ln_presatm .false.
251    cd ${SETTE_DIR}
252    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 ${TEST_NAME}
253fi
254
255if [ ${config} -eq 3 ] ;  then
256    ## Restartability tests for POMME
257    export TEST_NAME="LONG"
258    cd ${SETTE_DIR}
259    . ../CONFIG/makenemo -m ${CMP_NAM} -n POMME_LONG -r POMME -j 8
260    cd ${SETTE_DIR}
261    . param.cfg
262    . all_functions.sh
263    . prepare_exe_dir.sh
264    cd ${EXE_DIR}
265    set_namelist namelist cn_exp \"POMME_LONG\"
266    set_namelist namelist nn_it000 1
267    set_namelist namelist nn_stock 300
268    set_namelist namelist nn_itend 600
269    set_namelist namelist ln_clobber .true.
270    set_namelist namelist nn_solv 2
271    cd ${SETTE_DIR}
272    . ./fcm_job.sh input_POMME.cfg 1 ${TEST_NAME}
273   
274    cd ${SETTE_DIR}
275    export TEST_NAME="SHORT"
276    . prepare_exe_dir.sh
277    cd ${EXE_DIR}
278    set_namelist namelist cn_exp \"POMME_SHORT\"
279    set_namelist namelist nn_it000 301
280    set_namelist namelist nn_itend 600
281    set_namelist namelist ln_rstart .true.
282    set_namelist namelist nn_rstctl 2
283    set_namelist namelist ln_clobber .true.
284    set_namelist namelist nn_solv 2
285    cp ../LONG/POMME_LONG_00000300_restart*.nc .
286    set_namelist namelist cn_ocerst_in \"POMME_LONG_00000300_restart\"
287    cp ../LONG/restart.obc.output restart.obc
288    #mv restart.obc.output restart.obc
289    cd ${SETTE_DIR}
290    . ./fcm_job.sh input_POMME.cfg 1 ${TEST_NAME}
291fi
292
293if [ ${config} -eq 4 ] ;  then
294    ## Repropducilibity tests for GYRE_LOBSTER
295    export TEST_NAME="REPRO_1_4"
296    cd ${SETTE_DIR}
297    . ../CONFIG/makenemo -m ${CMP_NAM} -n GYRELOB_4 -r GYRE_LOBSTER -j 8 add_key "key_mpp_mpi" 
298    cd ${SETTE_DIR}
299    . param.cfg
300    . all_functions.sh
301    . prepare_exe_dir.sh
302    cd ${EXE_DIR}
303    set_namelist namelist cn_exp \"GYRELOB_14\"
304    set_namelist namelist nn_it000 1
305    set_namelist namelist nn_itend 60
306    set_namelist namelist nn_fwb 0
307    set_namelist namelist nn_bench 0
308    set_namelist namelist ln_ctl .false.
309    set_namelist namelist ln_clobber .true.
310    set_namelist namelist nn_solv 2
311    set_namelist namelist_top ln_diatrc .false.
312    set_namelist namelist_top ln_trcdta .false.
313    set_namelist namelist jpni 1
314    set_namelist namelist jpnj 4
315    set_namelist namelist jpnij 4
316    cd ${SETTE_DIR}
317    . ./fcm_job.sh input_GYRE.cfg 4 ${TEST_NAME}
318   
319    cd ${SETTE_DIR}
320    export TEST_NAME="REPRO_2_2"
321    . prepare_exe_dir.sh
322    cd ${EXE_DIR}
323    set_namelist namelist cn_exp \"GYRELOB_22\"
324    set_namelist namelist nn_it000 1
325    set_namelist namelist nn_itend 60
326    set_namelist namelist nn_fwb 0
327    set_namelist namelist ln_ctl .false.
328    set_namelist namelist ln_clobber .true.
329    set_namelist namelist nn_solv 2
330    set_namelist namelist_top ln_diatrc .false.
331    set_namelist namelist_top ln_trcdta .false.
332    set_namelist namelist jpni 2
333    set_namelist namelist jpnj 2
334    set_namelist namelist jpnij 4
335    cd ${SETTE_DIR}
336    . ./fcm_job.sh input_GYRE.cfg 4 ${TEST_NAME}
337fi
338
339if [ ${config} -eq 5 ] ;  then
340    ## Repropducilibity tests for ORCA2_LIM_PISCES
341    export TEST_NAME="REPRO_4_4"
342    cd ${SETTE_DIR}
343    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2LIMPIS_16 -r ORCA2_LIM_PISCES -j 8 add_key "key_mpp_mpi"
344    cd ${SETTE_DIR}
345    . param.cfg
346    . all_functions.sh
347    . prepare_exe_dir.sh
348    cd ${EXE_DIR}
349    set_namelist namelist nn_it000 1
350    set_namelist namelist nn_itend 75
351    set_namelist namelist nn_fwb 0
352    set_namelist namelist ln_ctl .false.
353    set_namelist namelist ln_clobber .true.
354    set_namelist namelist jpni 4
355    set_namelist namelist jpnj 4
356    set_namelist namelist jpnij 16
357    set_namelist namelist nn_solv 2
358  set_namelist namelist_top ln_trcdta .false.
359    set_namelist namelist_top ln_diatrc .false.
360    set_namelist namelist_top ln_trcrad .false.
361    # put ln_pisdmp, ln_ironsed, ln_river, ln_ndepo, ln_dust to false
362    # if not you need input files, and for tests is not necessary
363    set_namelist namelist_pisces ln_pisdmp .false.
364    set_namelist namelist_pisces ln_ironsed .false.
365    set_namelist namelist_pisces ln_river .false.
366    set_namelist namelist_pisces ln_ndepo .false.
367    set_namelist namelist_pisces ln_dust .false.
368    set_namelist namelist_pisces ln_presatm .false.
369    cd ${SETTE_DIR}
370    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 ${TEST_NAME}
371
372    cd ${SETTE_DIR}
373    export TEST_NAME="REPRO_2_8"
374    . prepare_exe_dir.sh
375    cd ${EXE_DIR}
376    set_namelist namelist nn_it000 1
377    set_namelist namelist nn_itend 75
378    set_namelist namelist nn_fwb 0
379    set_namelist namelist ln_ctl .false.
380    set_namelist namelist ln_clobber .true.
381    set_namelist namelist jpni 2
382    set_namelist namelist jpnj 8
383    set_namelist namelist jpnij 16
384    set_namelist namelist nn_solv 2
385  set_namelist namelist_top ln_trcdta .false.
386    set_namelist namelist_top ln_diatrc .false.
387    set_namelist namelist_top ln_trcrad .false.
388    # put ln_pisdmp, ln_ironsed, ln_river, ln_ndepo, ln_dust to false
389    # if not you need input files, and for tests is not necessary
390    set_namelist namelist_pisces ln_pisdmp .false.
391    set_namelist namelist_pisces ln_ironsed .false.
392    set_namelist namelist_pisces ln_river .false.
393    set_namelist namelist_pisces ln_ndepo .false.
394    set_namelist namelist_pisces ln_dust .false.
395    set_namelist namelist_pisces ln_presatm .false.
396    cd ${SETTE_DIR}
397    . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 ${TEST_NAME}
398fi
399
400if [ ${config} -eq 6 ] ;  then
401    ## Reproductibility tests for POMME
402    export TEST_NAME="REPRO_1_4"
403    cd ${SETTE_DIR}
404    . ../CONFIG/makenemo -m ${CMP_NAM} -n POMME_4 -r POMME -j 8 add_key "key_mpp_mpi"
405    cd ${SETTE_DIR}
406    . param.cfg
407    . all_functions.sh
408    . prepare_exe_dir.sh
409    cd ${EXE_DIR}
410    set_namelist namelist nn_it000 1
411    set_namelist namelist nn_itend 300
412    set_namelist namelist nn_fwb 0
413    set_namelist namelist ln_ctl .false.
414    set_namelist namelist ln_clobber .true.
415    set_namelist namelist nn_solv 2
416    set_namelist namelist jpni 1
417    set_namelist namelist jpnj 4
418    set_namelist namelist jpnij 4
419    cd ${SETTE_DIR}
420    . ./fcm_job.sh input_POMME.cfg 4 ${TEST_NAME}
421
422    cd ${SETTE_DIR}
423    export TEST_NAME="REPRO_2_2"
424    . prepare_exe_dir.sh
425    cd ${EXE_DIR}
426    set_namelist namelist nn_it000 1
427    set_namelist namelist nn_itend 300
428    set_namelist namelist nn_fwb 0
429    set_namelist namelist ln_ctl .false.
430    set_namelist namelist ln_clobber .true.
431    set_namelist namelist nn_solv 2
432    set_namelist namelist jpni 2
433    set_namelist namelist jpnj 2
434    set_namelist namelist jpnij 4
435    cd ${SETTE_DIR}
436    . ./fcm_job.sh input_POMME.cfg 4 ${TEST_NAME}
437fi
438
439if [ ${config} -eq 7 ] ;  then
440    ## ORCA2_LIM with Agulhas AGRIF zoom
441    export TEST_NAME="SHORT"
442    cd ${SETTE_DIR}
443    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2AGUL -r ORCA2_LIM  -j 8 add_key "key_agrif" del_key "key_zdftmx"
444    cd ${SETTE_DIR}
445    . param.cfg
446    . all_functions.sh
447    . prepare_exe_dir.sh
448    cd ${EXE_DIR}
449    set_namelist namelist nn_it000 1
450    set_namelist namelist nn_itend 75
451    set_namelist namelist ln_ctl .false.
452    set_namelist namelist ln_clobber .true.
453    set_namelist 1_namelist nn_it000 1
454    set_namelist 1_namelist nn_itend 150
455    set_namelist 1_namelist ln_ctl .false.
456    set_namelist 1_namelist ln_clobber .true.
457    cd ${SETTE_DIR}
458    . ./fcm_job.sh input_ORCA2_LIM_AGRIF.cfg 1 ${TEST_NAME}
459fi
460
461if [ ${config} -eq 8 ] ;  then
462    ## ORCA2_LIM with Agulhas AGRIF zoom in MPI
463    export TEST_NAME="SHORT"
464    cd ${SETTE_DIR}
465    . ../CONFIG/makenemo -m ${CMP_NAM} -n ORCA2AGUL_1_2 -r ORCA2_LIM -j 8 add_key "key_mpp_mpi key_agrif" del_key "key_zdftmx"
466    cd ${SETTE_DIR}
467    . param.cfg
468    . all_functions.sh
469    . prepare_exe_dir.sh
470    cd ${EXE_DIR}
471    set_namelist namelist nn_it000 1
472    set_namelist namelist nn_itend 75
473    set_namelist namelist ln_ctl .false.
474    set_namelist namelist ln_clobber .true.
475    set_namelist namelist jpni 1
476    set_namelist namelist jpnj 2
477    set_namelist namelist jpnij 2
478    set_namelist 1_namelist nn_it000 1
479    set_namelist 1_namelist nn_itend 150
480    set_namelist 1_namelist ln_ctl .false.
481    set_namelist 1_namelist ln_clobber .true.
482    cd ${SETTE_DIR}
483    . ./fcm_job.sh input_ORCA2_LIM_AGRIF.cfg 2 ${TEST_NAME}
484fi
485
486done
Note: See TracBrowser for help on using the repository browser.