Opened 7 years ago

Closed 5 years ago

Last modified 3 years ago

#1074 closed Task (fixed)

New branch for CNRS 2013 : Configuration setting

Reported by: clevy Owned by: clevy
Priority: low Milestone: Unscheduled
Component: OCE Version: trunk
Severity: Keywords: namelists
Cc: Review:
MP ready?:

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 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)


Configuration setting/bugfixes for SETTE see ticket:#1074


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


Configuration setting/correct errors, see ticket:#1074


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


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


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


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


Configuration setting/Step3, see ticket:#1074


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


Configuration Setting/Step2, see ticket:#1074


Configuration Setting/Step? 1, see ticket:#1074

Change History (13)

comment:1 Changed 7 years ago by clevy

  • Description modified (diff)

comment:2 Changed 7 years ago by clevy

  • Description modified (diff)

comment:3 Changed 5 years ago by clevy

  • Resolution set to fixed
  • Status changed from new to closed

comment:4 Changed 4 years ago by nicolasmartin

  • Keywords interfaces added; interface removed

comment:5 Changed 4 years ago by nicolasmartin

  • Keywords variables added; variable removed

comment:6 Changed 4 years ago by nicolasmartin

  • Keywords namelists added; namelist removed

comment:7 Changed 4 years ago by nicolasmartin

  • Keywords interfaces removed

comment:8 Changed 4 years ago by nicolasmartin

  • Keywords user removed

comment:9 Changed 4 years ago by nicolasmartin

  • Keywords Items added; variables removed

comment:10 Changed 4 years ago by nicolasmartin

  • Keywords Items removed

comment:11 Changed 3 years ago by nemo

  • Type changed from Development to Task

Remove 'Development' type

comment:12 Changed 3 years ago by nemo

  • Keywords SEVERAL added

comment:13 Changed 3 years ago by nemo

  • Keywords SEVERAL removed
Note: See TracTickets for help on using tickets.