'''Note on system simplification''' [[BR]] [[BR]] '''Motivation''': 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]] linear filtered free surface zps ocean with TVD, and standard iso-neutral diffusion ; levitating sea-ice with virtual salt fluxes possibly to :[[BR]] 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). And this with a removing of obsolescent features and a cleaning of the code. 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) Notations: ''' *''' core action (supported by all system team) ''' -''' subject to discussion ''' ?''' feasible but all conditions required are not yet met [[BR]] [[BR]] '''I. CHANGE in options used by default''' '''*''' '''non-linear free surface''': by default ('''WP 2015''') '''*''' '''filtered free surface''': remove it as well as all its associated solvers (2015?) pre-requirement, AGRIF with time-splitting ( done in 2013) and deeply tested ( WP 2014 ), '''DONE''' '''*''' '''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 ?) !- tracer solved as thickness weighted tracer: D,, t,, (e,, 3t,, T) (''' WP 2015''' ) !- thickness weighted quantities in the outputs ( WP2014 )            '''DONE''' !- no more substitute (domzgr_substitute.h90): all e3 always defined at before, now and after time steps (''' partly done''' in 2013, ''' to be achieved''' in 2014). !- adapt OFFLINE for tracer to variable volume (2015) !- For OFFLINE, compute the grid in the same way than in ONLINE. '''*''' '''linear ssh''' option set without optimization (i.e. starting from the non-linear case with minimal changes, not optimal changes), or linear case suppressed ?? We should probably keep a linear case for test cases. (2014-2015 ?) '''*''' '''sea-ice''' : embedded sea-ice as default !- suppress levitating sea ice with virtual salt fluxes. (2014 ?) !- Suppress levitating sea ice with mass exchange (?) CICE issue… !- need the management of grounded-ice & land-fast ice (''' WP 2014''' ) !- need BDY compatibility with embedded sea-ice …. (who when?) '''-''' '''tracer advection scheme''':'''     DONE in ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF] '''-''' '''vertical physics''': simplification versus diversity !- keep only one (GLS) ? or maintain some diversity? !- 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. !- suppress or keep the explicit vertical diffusion? [[BR]] [[BR]]'''II.OBSOLESCENT features''' [[BR]] '''mains''': ''' *''' remove ''' LIM2''' : only LIM3 remains in the system (''' WP 2014''' ) ''' *''' remove ''' OBC''' : only BDY remains in the system (''' ==>> done in v3.6''' ) ''' *''' remove ''' OASIS''' 3 and 4 : OASIS-MCT instead (''' WP 2014''' ) ''' -''' duplicate ''' isoneutral operator''' : keep only the triad operator (Griffies' one) ? Tests needed before decision. Those tests are planed in 2014 (NOCS+LOCEAN) '''smaller ones''' ''' *''' remove ''' acceleration of convergence''' (notably rdttra=F(k) ==> unique rdt) ''' *''' remove ''' Neptune effect''' : ORCA1 runs shows its inefficiency (''' WP 2014''' ). ''' *''' remove ''' no-slip accurate''' option (key_noslip_accurate). Module divcur.F90 (==>> done in branch [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2014 2014/dev_CNRS0_NOC1_LDF​] ) ''' *''' suppress ''' cross-land advection''' : this option is hard coded for ORCA_R2_L31 and is nomore used. ''' *''' 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​] ''' -''' ''' Smagorinsky''' (?) : use 3rd order operator (UBS) instead and remove it ? ''' -''' ''' 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. ''' -''' ''' 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. ''' -''' ''' passive tracers''' : use trasbc routines for passive tracers to add the river inputs of nutrients '''I/O''' ''' *''' remove Dimg format (agreement obtained from the DRAKKAR group) (2014) ''' ?''' remove IOIPSL : 2 issues, still use in some places, and XIOs portability… ('' probably much too early to decide that'' ) ''' *''' 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] ) '''CODE cleaning''' ''' *''' 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] ''' *''' OBS operator : clean the stand-alone implementation (''' WP 2014''' ) ''' *''' avm defined at t-point ==> suppress avmu, avmv and ~10 lbc_lnk calls (2015 ?) ''' *''' suppress most of the CPP keys, if not all of them (2014-2015 ?) ''' *''' dynamical allocation: return back to standard allocation (?) (no more ''' CALL ''' wrk_alloc and ''' CALL ''' wrk_dealloc) Evaluation to decided what to do (''' WP 2014''' ) ''' *''' no more potential density (zdfnpc and MLD computed from alpha & beta) ''' *''' remove all hard coded specific alterations associated with configurations (ORCA,…) while introducing associated input files (2014-2015 ?) ''' *''' 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 ?) ''' -''' remove the key_esopa option that allow to compile and test all code option that are controlled by a cpp key. With the removal of nearly all cpp keys, it should become useless...'''     DONE in ''' [https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5721_CNRS9_NOC3_LDF ​2015/dev_r5721_CNRS9_NOC3_LDF]