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.
2013WP/2013Stream1/Configuration_Setting (diff) – NEMO

Changes between Version 7 and Version 8 of 2013WP/2013Stream1/Configuration_Setting


Ignore:
Timestamp:
2013-02-07T16:18:31+01:00 (11 years ago)
Author:
clevy
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2013WP/2013Stream1/Configuration_Setting

    v7 v8  
    1010From a user point of view: 
    1111 
    12   • global domain sizes are FORTRAN parameters, not namelist parameters[[BR]]       • 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 
     12  • global domain sizes are FORTRAN parameters, not namelist parameters[[BR]]        • 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 
    1313 
    1414From a developer point of view: 
    1515 
    16   • 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[[BR]]       • 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[[BR]]       • 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 ! [[BR]]       • in the code old namelist variables (i.e. with a non-doctor name) still survive ==> suppression is needed. 
     16  • 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[[BR]]        • 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[[BR]]        • 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 ! [[BR]]        • in the code old namelist variables (i.e. with a non-doctor name) still survive ==> suppression is needed. 
    1717 
    1818== [[BR]]Proposed SOLUTION1 (Gurvan, december 2012) == 
    19   '''            I -'''             global domain sizes, configuration names, etc... (all the PARAMETER in par_oce.F90) defined in the namelist. Impact: suppression of all par_XXX.h90 files. Also suppression of all key_XXX associated to configurations (key_ORCA_RXXX, key_EEL_RXXX, key_GYRE, etc...). 
     19  '''             I -'''              global domain sizes, configuration names, etc... (all the PARAMETER in par_oce.F90) defined in the namelist. Impact: suppression of all par_XXX.h90 files. Also suppression of all key_XXX associated to configurations (key_ORCA_RXXX, key_EEL_RXXX, key_GYRE, etc...). 
    2020 
    21   '''            II -'''             namelist:[[BR]]                            • One single whole by medium (ocean, ice, top, ...: '''     namelist_ref'''     , namelist_ice_ref, name list_top_ref, ...) put at CONFIG/ level in read-only mode. This namelist contains the default values. The hard coded default values spread in the modules are suppressed (together with the surviving old non-doctor variables). [[BR]]                            • In each configuration the namelists of each medium contain only the changes associated with the configuration (the name may be '''     namelist_cfg'''     , namelist_cfg_top, etc...). A pearl script will be used to build the all the namelists that are required to run NEMO:   [[BR]] 
     21  '''             II -'''              namelist:[[BR]]                             • One single whole by medium (ocean, ice, top, ...: '''      namelist_ref'''      , namelist_ice_ref, name list_top_ref, ...) put at CONFIG/ level in read-only mode. This namelist contains the default values. The hard coded default values spread in the modules are suppressed (together with the surviving old non-doctor variables). [[BR]]                             • In each configuration the namelists of each medium contain only the changes associated with the configuration (the name may be '''      namelist_cfg'''      , namelist_cfg_top, etc...). A pearl script will be used to build the all the namelists that are required to run NEMO:   [[BR]] 
    2222 
    23   namelist == namelist_ref       + namelist_cfg        changes[[BR]]  namelist_top == namelist_top_ref + namelist_top_cfg changes[[BR]]  etc ... 
     23  namelist == namelist_ref       + namelist_cfg        changes[[BR]]   namelist_top == namelist_top_ref + namelist_top_cfg changes[[BR]]   etc ... 
    2424 
    2525== Discussion (Claire) == 
     
    4444 * this suppresses the reference namelist, and above all the additionnal "merge namelist" step 
    4545 * in addition: using IOSTAT and ERR in the READ of the namelist, it is possible to manage properly not having a specific namelist at all in the small namelist file (when all default values are used), and typos in the namelist file 
     46 
     47== Proposed SOLUTION3 (Claire, January 2013) == 
     48  If the idea of losing at least one complete namelist is unbearable, another solution (based on choices of SOLUTION1) could be identical to SOLUTION1 for the beginning: 
     49 
     50 * a unique reference namelist (complete, with default values) in CONFIG/SHARED 
     51 * a small configuration-specific  namelist in CONFIG/CONFIG_NAME/EXP00 containing only the modified values from the reference namelist 
     52 * no initialisation in the code (since reference namelist contains everything) 
     53 * reading a namelist now takes 2 steps (in the code): reading the reference namelist and reading afterwards the configuration-specific namelist which will overwrite the defaultvalues by the changed one 
     54 
     55This allow having a complete namelist file (the unique reference namelist) but suppresses the additional merge-namelist step needed in SOLUTION1