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 19 and Version 20 of 2014WP/2014_SystemSimplification_v2


Ignore:
Timestamp:
2015-10-25T15:05:11+01:00 (9 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2014WP/2014_SystemSimplification_v2

    v19 v20  
    55---- 
    66=== Motivations : === 
    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 :  
     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 
     
    1313  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 
    1717Timing: achievement ~2016 (to be on time for the foreseen evolution of the dynamical core). 
     
    1919Notations: 
    2020 
    21   '''               *'''                 core action (supported by all system team)[[BR]]'''-'''                 subject to discussion[[BR]]'''?'''                 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 
    2222 
    2323---- 
     
    2727'''*'''  '''filtered free surface''': remove it as well as all its associated solvers ('''WP 2015''') 
    2828 
    29   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)''' 
    3030 
    3131'''*'''  '''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 ?) 
    3232 
    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 
     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 
    3434 
    35   !-  thickness weighted quantities in the outputs ( WP2014 )            '''            DONE (v3.6 stable)''' 
     35  !-  thickness weighted quantities in the outputs ( WP2014 )            '''             DONE (v3.6 stable)''' 
    3636 
    3737  !-  no more substitute (domzgr_substitute.h90): all e3 always defined at before, now and after time steps (WP 2015) ==>>  see NOC3 2015 branch 
     
    4949  !-  Suppress levitating sea ice with mass exchange (?)  CICE issue… 
    5050 
    51   !-  need the management of grounded-ice & land-fast ice ('''             WP 2016'''             ) 
     51  !-  need the management of grounded-ice & land-fast ice ('''              WP 2016'''              ) 
    5252 
    5353  !- need BDY compatibility with embedded sea-ice …. (who when?) 
     
    5959'''*''' '''vertical physics''':  simplification versus diversity 
    6060 
    61   !- 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''' 
    6262 
    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] 
     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] 
    6464 
    6565  !- 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) 
     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) 
    6767 
    6868---- 
     
    7070'''mains''': 
    7171 
    72   '''               *'''                       remove '''             LIM2'''                : only LIM3 remains in the system ('''             WP 2016'''         ) 
     72  '''                *'''                        remove '''              LIM2'''                 : only LIM3 remains in the system ('''              WP 2016'''          ) 
    7373 
    74   '''               *'''                       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''' 
    7575 
    76   '''               *'''                       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''' 
    7777 
    78   '''               -'''                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) ???? 
    7979 
    8080'''smaller ones''' 
    8181 
    82   '''               *'''                       remove '''               acceleration of convergence'''                (notably rdttra=F(k) ==> unique rdt) 
     82  '''                *'''                        remove '''                acceleration of convergence'''                 (notably rdttra=F(k) ==> unique rdt) 
    8383 
    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] 
     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] 
    8585 
    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] 
     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] 
    8787 
    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] 
     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] 
    8989 
    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​] 
     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​] 
    9191 
    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] 
     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] 
    9393 
    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''' 
     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''' 
    9595 
    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. 
     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. 
    9797 
    98   '''               -'''                      '''             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 
    9999 
    100100---- 
    101101=== III. I/O === 
     102  '''                *'''                        remove Dimg format (agreement obtained from the DRAKKAR group) (2015)  ==>> Italian branch 
    102103 
    103   '''               *'''                       remove Dimg format (agreement obtained from the DRAKKAR group) (2015)  ==>> Italian branch 
     104  '''                ?'''                        remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''                '''         probably much too early to decide that''          '''               ) 
    104105 
    105   '''               ?'''                       remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''               '''        probably much too early to decide that''         '''              ) 
    106  
    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 ! 
     106  '''                *'''            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 ! 
    108107 
    109108---- 
    110109=== 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] 
     110  '''                *'''                        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] 
    112111 
    113   '''               *'''                       OBS operator : clean the stand-alone implementation ('''             WP 2015'''         ) 
     112  '''                *'''                        OBS operator : clean the stand-alone implementation ('''              WP 2015'''          ) 
    114113 
    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'''             ) 
     114  '''        *'''                        dynamical allocation: return back to standard allocation (?) (no more '''                CALL '''                wrk_alloc and '''                CALL '''                wrk_dealloc)  Evaluation to decided what to do ('''              WP 2014'''              ) 
    116115 
    117   '''               *'''                       no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
     116  '''                *'''                        no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
     117  * remove the use of ua,va, ta and sa as workspace in tra.. & dyn... modules   '''DONE in '''[https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]  
    118118 
    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] 
     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] 
    120120 
    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): 
     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 ?)  
     122  '''        *'''         suppress most of the CPP keys, if not all of them (2015-2016): 
    122123 
    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] 
    124  
    125  * 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] 
    126  * remove '''key_noslip_accurate''' ''' ''' '''==>> DONE in '''[https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
     124    • 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]  
     125    • 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] 
     126    • 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] 
     127    • remove '''key_noslip_accurate''' ''' ''' '''==>> DONE in '''[https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] 
    127128 
    128129---- 
     130 
    129131=== 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. • 
     132  • remove'''         key_mpp_rep'''          : this option should become the default case !  Global sum without this option should be removed. •