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.
user/gm/Namelist_framework (diff) – NEMO

Changes between Version 2 and Version 3 of user/gm/Namelist_framework


Ignore:
Timestamp:
2018-04-26T19:51:25+02:00 (6 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • user/gm/Namelist_framework

    v2 v3  
    11 
    2 == Namelist framework description == 
     2== Namelist framework proposition == 
    33 
    4  This is an attempt to given the general philosophy behind the namelist_ref structure an what should appear in namelist_cfg. 
    5 Such a description should probably appears in the DOC as well as in the system team and user wiki pages. 
     4This page is an attempt to provide a proposed general philosophy behind the namelist_ref structure and what should appear in namelist_cfg. It also suggests some improvements to the current namelist. 
     5 
     6From a NEMO System Team perspective, the main objectif is to reduce drastically the duplication of sub-namelist in the namelist_cfg file for the standard configurations and test cases, and therefore facilitate namelist changes.  
     7 
     8From a user perspective, the main objective is to have a configuration namelist where : (1) all key choices appear, and (2) on which choices they willingly rely on the default reference namelist. Note that users that want all the namelist choices available in the namelist_cfg can still just copy the reference namelist and modify it. 
     9 
     10If adopted, such a description should probably appear in the DOC as well as in the system team and user wiki pages.  
     11 
     12[[BR]] 
     13 
    614 
    715 
    816=== Reference namelist : === 
    917 
    10 There is three type of namelist :  (1) "manager" namelist ; (2) "associate manager" namelists ; and (3) "specific" namlists. 
    11      (1) "manager" namelist : defines key parameters and activate through a logical the reading of the "associate manager" namelists. By default, all choices are deactivated, while choices is required (the model will stop at the initialization phase if no choice is made) . Such a namelist is characterized by  a " (default: NO selection) " comment at the end of their opening line : 
     18The ocean namelist contains 10 sections : 
     19{{{ 
     20!! NEMO/OPA  :  1 - Domain & run manager (namrun, namcfg, namdom, namtsd, namcrs, namc1d, namc1d_uvd) 
     21!! namelists    2 - Surface boundary (namsbc, namsbc_flx, namsbc_blk, namsbc_cpl, 
     22!!                                    namsbc_sas, namtra_qsr, namsbc_rnf, 
     23!!                                    namsbc_isf, namsbc_iscpl, namsbc_apr,  
     24!!                                    namsbc_ssr, namsbc_wave, namberg) 
     25!!              3 - lateral boundary (namlbc, namagrif, nambdy, nambdy_tide) 
     26!!              4 - top/bot boundary (namdrg, namdrg_top, namdrg_bot, nambbc, nambbl) 
     27!!              5 - Tracer           (nameos, namtra_adv, namtra_ldf, namtra_eiv, namtra_dmp) 
     28!!              6 - dynamics         (namdyn_adv, namdyn_vor, namdyn_hpg, namdyn_spg, namdyn_ldf) 
     29!!              7 - Vertical physics (namzdf, namzdf_ric, namzdf_tke, namzdf_gls, namzdf_iwm) 
     30!!              8 - diagnostics      (namnc4, namtrd, namspr, namflo, namhsb) 
     31!!              9 - Obs & Assim      (namobs, nam_asminc) 
     32!!             10 - miscellaneous    (nammpp, namctl, namsto) 
     33}}} 
     34 
     35 
     36There is three type of namelist :  (1) "manager"  ;  (2) "associate manager"  ;  and (3) "specific". 
     37     (1) "manager" namelist : it is required in all user configuration. It defines key parameters and activate through a logical the reading of the "associate manager" namelists. By default, all choices are deactivated, while choices is required (the model will stop at the initialization phase if no choice is made) . Such a namelist is characterized by  a " (default: NO selection) " comment at the end of their opening line : 
    1238{{{ 
    1339!----------------------------------------------------------------------- 
     
    1642}}} 
    1743     
    18      (2)  "associate manager" namelist : are activated  
     44     (2)  "associate manager" namelist : It is read only if its associated flag (ln_xxxyyy) appearing in its father "manager" namelist is set to true. It contains reasonable default value that user may overwrite in namelist_cfg.  Such a namelist is characterized by  a " (ln_xxxyyy =T) " comment at the end of their opening line : 
     45{{{ 
     46!----------------------------------------------------------------------- 
     47&namXXX     !   sort description                                        (ln_xxxyyy =T) 
     48!----------------------------------------------------------------------- 
     49}}} 
     50 
     51     (3) "specific" namelist : they are associated with a pure optional feature (ocean parametrization such as namtra_eiv, naltra_mle, etc.) or option that does not change the the model trajectory (diagnostics, print control, etc.).  They contains their own control switch (the first variable given in the namelist) and its default value is always FALSE. Such a type of namelist is characterized by  a " (default: NO) " comment at the end of their opening line : 
     52{{{ 
     53!----------------------------------------------------------------------- 
     54&namXXX     !   sort description                                        (default: NO) 
     55!----------------------------------------------------------------------- 
     56}}} 
     57 
     58[[BR]] 
    1959 
    2060 
    21      (3) "specific" namlists (i.e. independent namelists). 
     61Note that two other setting of these 3 types of namelist may be adopted to add a better visual identification : 
     62{{{ 
     63!! manager namelist 
     64!-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-= 
     65&namXXX        !   short description                                    (default: NO selection) 
     66!-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-= 
    2267 
    23    - Set all . 
     68!! assistant manager 
     69!-=--=--=--=--=--=--=--=--=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
     70&namXXX        !   short description                                    (ln_xxxyyy =T) 
     71!-=--=--=--=--=--=--=--=--=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
     72 
     73!! specific namelist  
     74!----------------------------------------------------------------------- 
     75&namXXX        !   short description                                    (default: NO) 
     76!----------------------------------------------------------------------- 
     77}}} 
     78or  
     79{{{ 
     80!-== == == == == == == == == == == == == == == == == == == == == == == = 
     81&namXXX        !   short description                                    (default: NO selection) 
     82!-== == == == == == == == == == == == == == == == == == == == == == == = 
     83 
     84!! assistant manager 
     85!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 
     86&namXXX        !   short description                                    (ln_xxxyyy =T) 
     87!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 
     88 
     89!! specific namelist  
     90!----------------------------------------------------------------------- 
     91&namXXX        !   short description                                    (default: NO) 
     92!----------------------------------------------------------------------- 
     93}}} 
     94 
     95[[BR]] 
     96 
     97   Note also that the I'm not very found of the tags : 
     98      "default: NO selection" ; "ln_xxxyyy =T" ; and "default: NO" 
     99   For example, they can be be : 
     100      "default: REQUIRE selection" ; "used IF ln_xxxyyy =T" ; and "default: NOT used" 
     101   or any other clever suggestion. 
     102 
     103[[BR]] 
     104 
    24105 
    25106 
    26107=== configuration namelist : === 
     108This namelist aims to overwrite the reference namelist values. The way its is set in all configurations and test cases provides in the down in the NEMOGCM/CONFIG directory is the following : It have to contain the namelist : 
    27109 
     110      (0) all the header of 10 sections of the ocean namelist, listing all the section namelist that are relevant for the configuration (e.g. C1D namelist description line will only appears in the C1D_PAPA configuration. 
    28111 
     112      (1) In addition to namdom and namrun, ALL the "manager" namelist:  By definition all "manager namelist require to switch at least on namelist logical from FALSE to TRUE. 
     113 
     114      (2) only the "associate manager" namelist for which  the two conditions are satisfied:  -1- its manager  namelist logical equal TRUE  ; and -2- the default reference values that has been modified. 
     115 
     116      (3) only "specific" namelist for which the user have chosen to set to TRUE its control switch. In the case only the other namelist option that has been changed compare to the reference will appear. 
     117[[BR]] 
    29118 
    30119 
     
    32121=== Key changes compare to v3.6 === 
    33122 
    34 - No more ORCA2 specific choices 
    35 - deactivate all option and set to false all switches, except in so called "associated manager" namelists (see below their definition). 
     123- No more ORCA2 specific choices in namelist_ref. 
     124- generalize the notion of "manager", "associate manager" and "specific" namelists 
     125- add the possibility of having (in the solved Primitive Equation) NO trend  in tracer or momentum advection and/or lateral mixing, Coriolis, …   
     126- set to false all option in "manager" namelists, switch off all switches that , except in so called "associated manager" namelists  . 
     127- change to a dummy name all name and/or weight fields that need to be read in a NetCDF file.  
    36128 
    37129   
    38130 
    39 '''things to be improved :'''  
     131=== things to be improved & questions : === 
    40132- move in  namsbc_wave namelist all the wave related variable that are in namsbc except ln_wave switch, that is:  
    41133{{{ 
     
    55147- rename namtra_adv_mle ==>> namtra_mle to be consistent with eve name: namtra_eiv which are both associated with an extra advection for tracers. 
    56148- namlbc   : the current default is no slip, should it be a required choice (set by default a negative value: -9999 or, a probably better case, set it by default to free slip ?  
    57 - namdyn_vor : add a ln_dynvor_noCOR option (user in TEST_CASES (overflow and lock exchange) 
     149- namdyn_vor : add a ln_dynvor_noCOR option (used in some TEST_CASES (overflow and lock exchange) 
     150- move ln_icebergs from namberg to namsbc namelist (affect the surface ocean boundary condition, should be a "associate manager" namelist  
     151- nam_tide should it be an "associate manager" namelist ?? 
    58152[[BR]] 
    59153 
    60154'''All suggestions for improvements are welcome !''' 
    61155 
    62 These options are very interesting and seem to be contradictory with the work done by Andrew Coward, as decided during a previous System Tean VC  see his message: 
    63  
    64  
    65156{{{ 
    66 Dear all, The changes at change set 9490 have introduced a lot of name list changes that have undone all the work I did at change set 9356 to align all the reference and configuration name lists; I.e.: 
     157Dear all, The changes at change set 9490 have introduced a lot of name list changes that have  
     158undone all the work I did at change set 9356 to align all the reference and configuration name lists; I.e.: 
    67159 
    68160r9356 | acc | 2018-02-23 17:32:30 +0000 (Fri, 23 Feb 2018) | 1 line 
    69161 
    70 Branch: 2017/dev_merge_2017. Cosmetic (hopefully) changes to namelist files to enforce more consistency between reference and configuration name lists.  
     162Branch: 2017/dev_merge_2017. Cosmetic (hopefully) changes to namelist files to enforce more  
     163consistency between reference and configuration name lists.  
    71164 
    72165See new file: NEMOGCM/CONFIG/SHARED/README.namelists for the conventions used. 
    73166                                                                                                         
    74 For a brief period it was possible to do a simple side by side comparison of the reference and configuration name lists and have all the blocks line up. If no one else thinks this is useful then I'll give up the idea because it is too tedious to keep repeating that process if changes to name lists are not made incrementally with reference to the current head. Something to discuss at the next VC perhaps.  
     167For a brief period it was possible to do a simple side by side comparison of the reference  
     168and configuration name lists and have all the blocks line up. If no one else thinks this is useful  
     169then I'll give up the idea because it is too tedious to keep repeating that process if changes to  
     170namelists are not made incrementally with reference to the current head.  
     171Something to discuss at the next VC perhaps.  
    75172 
    76173-Andrew 
    77174}}} 
    78175 
     176   Needs quite probably some discussion very soon. 
    79177 
    80 Needs quite probably some discussion very soon. 
     178   Claire. 
     179 
     180 
     181gurvan: Yes indeed, didn't saw that such an action was ongoing. I have contacted Andrew.