Opened 11 years ago
Last modified 7 years ago
#1074 closed Task
New branch for CNRS 2013 : Configuration setting — at Version 2
Reported by: | clevy | Owned by: | clevy |
---|---|---|---|
Priority: | low | Milestone: | Unscheduled |
Component: | OCE | Version: | trunk |
Severity: | Keywords: | namelists | |
Cc: |
Description (last modified by clevy)
2013: Configuration setting
Action CNRS-9
Several points have to be improved regarding the management of the namelist in NEMO.
From a user point of view:
- global domain sizes are FORTRAN parameters, not namelist parameters• a namelist file in each configuration with all the variables (i.e. all the sub-namelist), not only the sub-namelist that depart from the default values
From a developer point of view:
- the number of copies of the whole namelist (2 by configuration and an increasing number of reference configuration) make the change in namelist a nightmare• default values of the namelist appear twice: 1) in the namelist itself and 2) in the code, distributed in the declaration phase of numerous modules• global domain sizes (jpiglo, jpjglo, jpidta, jpjdta, jpkdta) are FORTRAN parameters, except in AGRIF case ==> almost as many par_XXX.h90 as the number of reference configurations !• in the code old namelist variables (i.e. with a non-doctor name) still survive ==> suppression is needed.
See here https://forge.ipsl.jussieu.fr/nemo/wiki/2013WP/2013Stream1/Configuration_Setting for discussion
Step 1: New interface to read namelists
A new way to read namelist variables has been implemented. Instead of reading one namelist with a sequence like:
REWIND ( numnam ) READ( numnam, namctl )
the new interface looks like:
REWIND( numnam_ref ) ! Namelist namctl in reference namelist : Control prints & Benchmark READ ( numnam_ref, namctl, IOSTAT = ios, ERR = 901 ) 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in reference namelist', lwp ) REWIND( numnam_cfg ) ! Namelist namctl in confguration namelist : Control prints & Benchmark READ ( numnam_cfg, namctl, IOSTAT = ios, ERR = 902 ) 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist', lwp ) WRITE( numond, namctl )
More details:
To read the namelist variables:
- a reference namelist is read first (this namelist_ref file is unique, located in CONFIG/SHARED directory, contains all the variables and is in read-only mode)
- a configuration namelist is read afterwards, only to overwrite the defaults values read from the reference namelist (this one is specific, short and located in EXP00)
To deal with errors while reading:
A new ctl_nam subroutine has been implemented in lib_mpp.F90 to deal with erros and print them in ocean.output if needed
To check the values of namelist variables
A new output.namelist, output_namelist_ice... output files are created: each time a namelist group_name is read, is it wirttin (ascii) in the output_namelist corresponding file, so that this file, created at execution time, contains all namelist avriables and their values as taken in account during the simulation.
STEP1: Add the new "twin namelists (*.ref for reference, and *.cfg for configuration) in CONFIG/SHARED and in each reference configuration EXP00 directory, so as the "twin reading" of these namelists in the code.
Done in the source code and in all EXP00 reference configurations, and in CONFIG/SHARED, see revision 3875
STEP2: suppress all initialisations of namelist avriables in the code, since it is done once for all by reading the complete namelist in SHARED/*.ref.
Shorten the EXP00/*.cfg namelist to keep only the values changed from SHARED/*.ref namelist
Done in source code and all namelist files , see revision 3901 and 3954
STEP3: allow dynamical configuration of NEMO by suppressing the cpp keys for configurations (key_orca_r2...) and adding needed namelist variables
Commit History (11)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
4049 | clevy | 2013-10-03T11:07:09+02:00 |
|
4044 | clevy | 2013-09-25T16:33:22+02:00 |
|
4025 | clevy | 2013-09-12T11:08:28+02:00 |
|
4020 | clevy | 2013-09-10T14:12:31+02:00 |
|
4018 | clevy | 2013-09-09T15:43:56+02:00 |
|
3993 | clevy | 2013-07-30T11:14:05+02:00 |
|
3989 | clevy | 2013-07-24T11:48:35+02:00 |
|
3973 | clevy | 2013-07-12T13:54:28+02:00 |
|
3954 | clevy | 2013-07-03T16:20:05+02:00 |
|
3901 | clevy | 2013-05-03T14:35:21+02:00 | Configuration Setting/Step2, see ticket:#1074 |
3875 | clevy | 2013-04-18T16:38:06+02:00 | Configuration Setting/Step? 1, see ticket:#1074 |
Change History (2)
comment:1 Changed 11 years ago by clevy
- Description modified (diff)
comment:2 Changed 11 years ago by clevy
- Description modified (diff)