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 21 and Version 22 of 2014WP/2014_SystemSimplification_v2


Ignore:
Timestamp:
2015-10-26T07:36:58+01:00 (9 years ago)
Author:
gm
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2014WP/2014_SystemSimplification_v2

    v21 v22  
    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 
     102  '''                   *'''                           remove Dimg format (agreement obtained from the DRAKKAR group) (2015)  ==>> Italian branch 
    103103 
    104   '''                 ?'''                         remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''                 '''          probably much too early to decide that''           '''                ) 
     104  '''                   ?'''                           remove IOIPSL : 2 issues, still use in some places, and XIOs portability… (''                   '''            probably much too early to decide that''             '''                  ) 
    105105 
    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 ! 
     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 ! 
    107107 
    108108---- 
    109109=== IV. CODE cleaning === 
    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] 
     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] 
    111111 
    112   '''                 *'''                         OBS operator : clean the stand-alone implementation ('''               WP 2015'''           ) 
     112  '''                   *'''                           OBS operator : clean the stand-alone implementation ('''                 WP 2015'''             ) 
    113113 
    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'''               ) 
     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'''                 ) 
    115115 
    116   '''                 *'''                         no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
     116  '''                   *'''                           no more potential density (zdfnpc and MLD computed from alpha & beta)   ==>>> ????? 
    117117 
    118  * 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] 
     118   '''                   *''' 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] 
    119119 
    120   '''                 *'''                         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] 
     120  '''                   *'''                           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] [[BR]] - etc... 
    121121 
    122   '''                 *'''                          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): 
     122  '''                   *'''                            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 ?) 
    123123 
    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]   • 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] • 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] • 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  '''                   *''' suppress most of the CPP keys, if not all of them (2015-2016): 
     125 
     126 * 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] 
     127 
     128 * 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] 
     129 
     130 * 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] 
     131 
     132 * 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] 
    125133 
    126134---- 
    127135=== New ideas to be discussed : === 
    128   • remove'''          key_mpp_rep'''           : this option should become the default case !  Global sum without this option should be removed.  
    129   • remove lib_print.F90 and all associated CALL. Easy to do. Involved modules: instate.F90 ; dtauvd.F90 ; domzgr.F90 ; dommsk.F90 and sbcflx.F90. 
     136  • remove'''            key_mpp_rep'''             : this option should become the default case !  Global sum without this option should be removed.   
     137  • remove lib_print.F90 and all associated CALL. Easy to do. Involved modules: instate.F90 ; dtauvd.F90 ; domzgr.F90 ; dommsk.F90 and sbcflx.F90.  
    130138  • remove lib_cray.F90 : only contains wheneq routine used in diawri.F90 and trevor.F90. Easy to do.