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.
#1074 (New branch for CNRS 2013 : Configuration setting) – NEMO

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)

ChangesetAuthorTimeChangeLog
4049clevy2013-10-03T11:07:09+02:00

Configuration setting/bugfixes for SETTE see ticket:#1074

4044clevy2013-09-25T16:33:22+02:00

Configuration setting/add SETTE compatibility, see ticket:#1074

4025clevy2013-09-12T11:08:28+02:00

Configuration setting/correct errors, see ticket:#1074

4020clevy2013-09-10T14:12:31+02:00

Configuration setting/correct my error, see ticket:#1074

4018clevy2013-09-09T15:43:56+02:00

Configuration setting, bugfixes for AGRIF, see ticket:#1074

3993clevy2013-07-30T11:14:05+02:00

Configuration setting/Step3 bugfixes,doc, and redistribute variables in namcfg and namdom see ticket:#1074

3989clevy2013-07-24T11:48:35+02:00

Configuration setting/Step3 and doc, see ticket:#1074

3973clevy2013-07-12T13:54:28+02:00

Configuration setting/Step3, see ticket:#1074

3954clevy2013-07-03T16:20:05+02:00

Configuration setting/Step2, additions, see ticket:#1074

3901clevy2013-05-03T14:35:21+02:00

Configuration Setting/Step2, see ticket:#1074

3875clevy2013-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)
Note: See TracTickets for help on using tickets.