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.
2014WP/2014_SystemSimplification_v2 (diff) – NEMO

Changes between Version 18 and Version 19 of 2014WP/2014_SystemSimplification_v2


Ignore:
Timestamp:
2015-10-25T12:20:59+01:00 (9 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2014WP/2014_SystemSimplification_v2

    v18 v19  
    11[[PageOutline]] Last edited [[Timestamp]] 
    22 
    3 '''Actions on System Simplication:  towards NEMO 4.0'''[[BR]] [[BR]] 
     3'''[[BR]][[BR]]Actions on System Simplication:  towards NEMO 4.0'''[[BR]] 
    44 
    5 '''Motivation''': 
    6  
    7 We need to simplify the code for maintenance, robustness and future evolution of the dynamical core. This means fewer options, and a consensus on the default (and thus well validated) set of numerics. The idea is to change the current most used choices from : [[BR]] 
     5---- 
     6=== Motivations : === 
     7We need to simplify the code for maintenance, robustness and future evolution of the dynamical core. This means fewer options, and a consensus on the default (and thus well validated) set of numerics. The idea is to change the current most used choices from :  
    88 
    99  linear filtered free surface zps ocean with TVD, and standard iso-neutral diffusion ;  levitating sea-ice with virtual salt fluxes 
    1010 
    11 possibly to :[[BR]] 
     11possibly to : 
    1212 
    13   Non linear (vvl), split-explicit (ts) free surface, mixte zps/s-coordinate ocean with high order advection schemes,  triad iso-neutral diffusion (Griffies operator) ; embedded multi-category sea-ice (exact fluxes). 
     13  Non linear (vvl), split-explicit (ts) free surface, mixte zps/s-coordinate ocean with high order advection schemes, iso-neutral diffusion ; embedded multi-category sea-ice (exact fluxes). 
    1414 
    15 And this with a removing of obsolescent features and a cleaning of the code. 
     15And this with a removing of obsolescent features and a cleaning of the code.  
    1616 
    17 Timing: achievement within 2 years from now for NEMO v4.0 (to be ready for CMIP6, and on time for the foreseen evolution of the dynamical core) 
     17Timing: achievement ~2016 (to be on time for the foreseen evolution of the dynamical core). 
    1818 
    1919Notations: 
    2020 
    21   '''           *'''             core action (supported by all system team) 
    22  
    23   '''           -'''             subject to discussion 
    24  
    25   '''           ?'''             feasible but all conditions required are not yet met 
     21  '''               *'''                 core action (supported by all system team)[[BR]]'''-'''                 subject to discussion[[BR]]'''?'''                 feasible but all conditions required are not yet met 
    2622 
    2723---- 
    28 [[BR]] '''I. CHANGE in options used by default''' 
    29  
     24=== I. CHANGE in options used by default === 
    3025'''*'''        '''non-linear free surface''': by default ('''WP 2015''') ==>>  see NOC3 2015 branch 
    3126 
    3227'''*'''  '''filtered free surface''': remove it as well as all its associated solvers ('''WP 2015''') 
    3328 
    34   pre-requirement, AGRIF with time-splitting ( done  in 2013) and deeply tested ( WP 2014 ), '''        DONE (v3.6 stable)''' 
     29  pre-requirement, AGRIF with time-splitting ( done  in 2013) and deeply tested ( WP 2014 ), '''            DONE (v3.6 stable)''' 
    3530 
    3631'''*'''  '''vertical coordinate''' : default option mixte zps/s-tilde coordinate (thus with variable volume level), with mixte zps*/s*, mixte z/s, zps, z and s coordinate system as sub-option (same code used) (2014-2015 ?) 
    3732 
    38   !-  tracer solved as thickness weighted tracer: D,,           t,,           (e,,           3t,,            T) ('''         WP 2015'''         ) ==>>   see NOC3 2015 branch 
     33  !-  tracer solved as thickness weighted tracer: D,,t,,(e,,3t,,                T) or possibly D,,t,,(e,,1t,,e,,2t,,e,,3t,, T)  ('''             WP 2015'''             ) ==>>   see NOC3 2015 branch 
    3934 
    40   !-  thickness weighted quantities in the outputs ( WP2014 )            '''        DONE (v3.6 stable)''' 
     35  !-  thickness weighted quantities in the outputs ( WP2014 )            '''            DONE (v3.6 stable)''' 
    4136 
    4237  !-  no more substitute (domzgr_substitute.h90): all e3 always defined at before, now and after time steps (WP 2015) ==>>  see NOC3 2015 branch 
     
    5449  !-  Suppress levitating sea ice with mass exchange (?)  CICE issue… 
    5550 
    56   !-  need the management of grounded-ice & land-fast ice ('''         WP 2016'''         ) 
     51  !-  need the management of grounded-ice & land-fast ice ('''             WP 2016'''             ) 
    5752 
    5853  !- need BDY compatibility with embedded sea-ice …. (who when?) 
     
    6459'''*''' '''vertical physics''':  simplification versus diversity 
    6560 
    66   !- keep only one (GLS) ? or maintain some diversity?  ==>> '''      keep both TKE and GLS''' 
     61  !- keep only one (GLS) ? or maintain some diversity?  ==>> '''          keep both TKE and GLS''' 
    6762 
    68   !- KPP remove unless if-less KPP is implemented (Lemarié et al 2012). Keeping a validated KPP scheme in the system make sense for comparison purposes. '''    ==>> DONE in '''      [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     63  !- KPP remove unless if-less KPP is implemented (Lemarié et al 2012). Keeping a validated KPP scheme in the system make sense for comparison purposes. '''        ==>> DONE in '''          [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    6964 
    70   !- suppress or keep the explicit vertical diffusion?  needed for numerical tests, we keep explicit option, but implicit is the default choice.  !- introduce a manager of vertical physics called by step.F90 with the following features: '''     ==>> see '''     [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_ZDF ​2015/dev_r5721_CNRS9_NOC3_ZDF]     [[BR]]      (1) minimization of lvc_lnk communication (remove ~10 lvc_lnk call) ; (2) remove avmu, and avmv ; (3) remove all key_zdf... CPP keys (replaced by namelist logicals) ; (4) remove zdfddm_subsitute.h90 : ave is always defined) ; (5) introduce a separate computation of the shear production term (shared by TKE and GLS) 
     65  !- suppress or keep the explicit vertical diffusion?  needed for numerical tests, we keep explicit option, but implicit is the default choice. 
     66   !- introduce a manager of vertical physics called by step.F90 with the following features: '''         ==>> see '''         [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_ZDF ​2015/dev_r5721_CNRS9_NOC3_ZDF]         [[BR]]          (1) minimization of lvc_lnk communication (remove ~10 lvc_lnk call) ; (2) remove avmu, and avmv ; (3) remove all key_zdf... CPP keys (replaced by namelist logicals) ; (4) remove zdfddm_subsitute.h90 : ave is always defined) ; (5) introduce a separate computation of the shear production term (shared by TKE and GLS) 
    7167 
    7268---- 
    73 '''II.OBSOLESCENT features''' [[BR]] 
    74  
     69=== II. OBSOLESCENT features === 
    7570'''mains''': 
    7671 
    77   '''           *'''                   remove '''         LIM2'''            : only LIM3 remains in the system ('''         WP 2016'''     ) 
     72  '''               *'''                       remove '''             LIM2'''                : only LIM3 remains in the system ('''             WP 2016'''         ) 
    7873 
    79   '''           *'''                   remove '''         OBC'''            : only BDY remains in the system  '''      ==>> DONE in v3.6'''       '''      stable''' 
     74  '''               *'''                       remove '''             OBC'''                : only BDY remains in the system  '''          ==>> DONE in v3.6'''           '''          stable''' 
    8075 
    81   '''           *'''                   remove '''         OASIS'''            3 and 4 :  OASIS-MCT instead    '''      ==>>  DONE in v3.6 stable''' 
     76  '''               *'''                       remove '''             OASIS'''                3 and 4 :  OASIS-MCT instead    '''          ==>>  DONE in v3.6 stable''' 
    8277 
    83   '''           -'''            duplicate '''           isoneutral operator'''           : keep only the triad operator (Griffies' one) ? Tests needed before decision. Those tests should be planed in 2016 (NOCS+LOCEAN) ???? 
     78  '''               -'''                duplicate '''               isoneutral operator'''               : keep only the triad operator (Griffies' one) ? Tests needed before decision. Those tests should be planed in 2016 (NOCS+LOCEAN) ???? 
    8479 
    8580'''smaller ones''' 
    8681 
    87   '''           *'''                   remove '''           acceleration of convergence'''            (notably rdttra=F(k) ==> unique rdt) 
     82  '''               *'''                       remove '''               acceleration of convergence'''                (notably rdttra=F(k) ==> unique rdt) 
    8883 
    89   '''           *'''                   remove '''         Neptune effect'''          : ORCA1 runs shows its inefficiency.     '''    ==>> DONE in '''    [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     84  '''               *'''                       remove '''             Neptune effect'''              : ORCA1 runs shows its inefficiency.     '''        ==>> DONE in '''        [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    9085 
    91   '''           *'''                   remove '''         no-slip accurate'''          option (key_noslip_accurate). Module divcur.F90    '''      ==>> DONE in '''      [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     86  '''               *'''                       remove '''             no-slip accurate'''              option (key_noslip_accurate). Module divcur.F90    '''          ==>> DONE in '''          [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    9287 
    93   '''           *'''                    suppress '''         cross-land advection'''          : this option is hard coded for ORCA_R2_L31 and is nomore used.   '''      ==>> DONE in '''      [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     88  '''               *'''                        suppress '''             cross-land advection'''              : this option is hard coded for ORCA_R2_L31 and is nomore used.   '''          ==>> DONE in '''          [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    9489 
    95   '''           *'''                    suppress '''         key_traldf_ano'''          and the associated possibility of computing lateral diffusion on tracer using only the departure from a given profile.  (==>> done in branch [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2014 2014/dev_CNRS0_NOC1_LDF​] 
     90  '''               *'''                        suppress '''             key_traldf_ano'''              and the associated possibility of computing lateral diffusion on tracer using only the departure from a given profile.  (==>> done in branch [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2014 2014/dev_CNRS0_NOC1_LDF​] 
    9691 
    97   '''           -'''                   '''         Smagorinsky'''       : to be removed.   '''      ==>> DONE in '''      [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     92  '''               -'''                       '''             Smagorinsky'''           : to be removed.   '''          ==>> DONE in '''          [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    9893 
    99   '''           -'''                   '''         Non-penetrative convection'''          : with its correction and improvement using alpha & beta (work done by L. Brodeau, Stockholm), it seems now better to keep it in the system.                    '''      ==>> DONE in v3.6 stable''' 
     94  '''               -'''                       '''             Non-penetrative convection'''              : with its correction and improvement using alpha & beta (work done by L. Brodeau, Stockholm), it seems now better to keep it in the system.                    '''          ==>> DONE in v3.6 stable''' 
    10095 
    101   '''           -'''                   '''         runoffs'''          : only introduced as lateral flow: remove the option of runoff as surface boundary condition as well as specific treatment in vicinity of river mouths. 
     96  '''               -'''                       '''             runoffs'''              : only introduced as lateral flow: remove the option of runoff as surface boundary condition as well as specific treatment in vicinity of river mouths. 
    10297 
    103   '''           -'''                  '''         passive tracers'''          : use trasbc routines for passive tracers to add the river inputs of nutrients 
     98  '''               -'''                      '''             passive tracers'''              : use trasbc routines for passive tracers to add the river inputs of nutrients 
    10499 
    105100---- 
    106 '''I/O''' 
     101=== III. I/O === 
    107102 
    108   '''           *'''                   remove Dimg format (agreement obtained from the DRAKKAR group) (2015)  ==>> Italian branch 
     103  '''               *'''                       remove Dimg format (agreement obtained from the DRAKKAR group) (2015)  ==>> Italian branch 
    109104 
    110   '''           ?'''                   remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''           '''    probably much too early to decide that''     '''          ) 
     105  '''               ?'''                       remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''               '''        probably much too early to decide that''         '''              ) 
    111106 
    112   '''           *'''       use of XIOS logical to control the computation of diagnostics (2014-2015), already done but only for LIM3, see [https://forge.ipsl.jussieu.fr/nemo/browser/branches/dev_r4028_CNRS_LIM3_MV2014 dev_r4028_CNRS_LIM3_MV2014]         )[[BR]]        generalize its use throughout the code ! 
     107  '''               *'''           use of XIOS logical to control the computation of diagnostics (2014-2015), already done but only for LIM3, see [https://forge.ipsl.jussieu.fr/nemo/browser/branches/dev_r4028_CNRS_LIM3_MV2014 dev_r4028_CNRS_LIM3_MV2014]             )[[BR]]            generalize its use throughout the code ! 
    113108 
    114109---- 
    115 '''CODE cleaning''' 
     110=== IV. CODE cleaning === 
     111  '''               *'''                       LDF: remove 1D and 2D cases, keep only 3D ; laplacian and bilaplacian coefficients defined at the same points (T and F) ;  time varying coefficients (function of growth rate of baroclinic instabilities, of the local velocity...): better integration rather than configuration dependent cases. This is also associated with the re-writing of bilaplacian operator on tracer and on dynamics as re-entrant laplacian operator. As a results, curl and div are no more required in the restart file.'''                             DONE in '''             [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    116112 
    117   '''           *'''                   LDF: remove 1D and 2D cases, keep only 3D ; laplacian and bilaplacian coefficients defined at the same points (T and F) ;  time varying coefficients (function of growth rate of baroclinic instabilities, of the local velocity...): better integration rather than configuration dependent cases. This is also associated with the re-writing of bilaplacian operator on tracer and on dynamics as re-entrant laplacian operator. As a results, curl and div are no more required in the restart file.'''                         DONE in '''         [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     113  '''               *'''                       OBS operator : clean the stand-alone implementation ('''             WP 2015'''         ) 
    118114 
    119   '''           *'''                   OBS operator : clean the stand-alone implementation ('''         WP 2015'''     ) 
     115  '''       *'''                       dynamical allocation: return back to standard allocation (?) (no more '''               CALL '''               wrk_alloc and '''               CALL '''               wrk_dealloc)  Evaluation to decided what to do ('''             WP 2014'''             ) 
    120116 
    121   '''   *'''                   dynamical allocation: return back to standard allocation (?) (no more '''           CALL '''           wrk_alloc and '''           CALL '''           wrk_dealloc)  Evaluation to decided what to do ('''         WP 2014'''         ) 
     117  '''               *'''                       no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
    122118 
    123   '''           *'''                   no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
     119  '''               *'''                       remove all '''        hard coded specific alterations'''         associated with configurations (ORCA,…) while introducing associated input files (2014-2015 ?)[[BR]]                              - strait width reduction in domhgr : '''          ==>> DONE in '''          [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]          [[BR]]                              - cross-land advection (ORCA2 only) removed '''        ==>> DONE in '''        [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    124120 
    125   '''           *'''                   remove all '''    hard coded specific alterations'''     associated with configurations (ORCA,…) while introducing associated input files (2014-2015 ?)[[BR]]                          - strait width reduction in domhgr : '''      ==>> DONE in '''      [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]      [[BR]]                          - cross-land advection (ORCA2 only) removed '''    ==>> DONE in '''    [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     121  '''               *'''                        same for the definition of coordinate system (s, mixed z-s): only a simple case hard coded. For more sophisticated cases, the required information should be read in an input file. (2015 ?) '''       *'''        suppress most of the CPP keys, if not all of them (2015-2016): 
    126122 
    127   '''           *'''                    same for the definition of coordinate system (s, mixed z-s): only a simple case hard coded. For more sophisticated cases, the required information should be read in an input file. (2015 ?) '''   *'''    suppress most of the CPP keys, if not all of them (2015-2016): 
    128  
    129   '''   * '''   LDF simplification ==>> the 9 related keys have been suppressed ('''   key_ldfslp'''    ; '''   ley_ldftra_eiv'''    ; '''   key_traldf_ano'''    ; '''   key_traldf_c1d'''   , '''   key_traldf_c2d'''   , '''   key_traldf_c3d'''    ; '''   key_dynldf_c1d'''   , '''   dynldf_c2d'''   , '''   dynldf_c3d'''   )    '''   ==>> DONE in '''   [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]   '''   *'''                    remove the '''   key_esopa'''    option that allow to compile and test all code option that are controlled by a cpp key. '''    ==>> DONE in '''         [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     123  '''       * '''       LDF simplification ==>> the 9 related keys have been suppressed ('''       key_ldfslp'''        ; '''       ley_ldftra_eiv'''        ; '''       key_traldf_ano'''        ; '''       key_traldf_c1d'''       , '''       key_traldf_c2d'''       , '''       key_traldf_c3d'''        ; '''       key_dynldf_c1d'''       , '''       dynldf_c2d'''       , '''       dynldf_c3d'''       )    '''       ==>> DONE in '''       [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]       '''       *'''                        remove the '''       key_esopa'''        option that allow to compile and test all code option that are controlled by a cpp key. '''        ==>> DONE in '''             [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    130124 
    131125 * remove '''key_vectopt_loop''' from all the code except in ''vectopt_loop_substitute.h90'' (it is an obsolescent feature only adapted to vector computers)   '''==>> DONE in '''[https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     
    133127 
    134128---- 
    135 '''New ideas to be discussed :''' 
    136  
    137   • remove'''    key_mpp_rep'''     : this option should become the default case !  Global sum without this option should be removed. • 
     129=== New ideas to be discussed : === 
     130  • remove'''        key_mpp_rep'''         : this option should become the default case !  Global sum without this option should be removed. •