Version 9 (modified by jchanut, 5 years ago) (diff)

Author: Jérôme Chanut, Mercator Océan

Page related to ticket: #1620 and associated to the following development branch: [​https://forge.ipsl.jussieu.fr/nemo/browser/branches/2015/dev_r5847_MERCATOR9_solveur_simplification]

This development is part of the shared simplication process, task: SIMPLIF-2: Removal of filtered free surface. Split explicit and explicit free surface only.

Step 1: Remove filtered free surface option and associated key_dynspg_flt key

1) Remove parts of the code specific to "key_dynspg_flt" or lk_dynspg_flt=T and the need for solver modules in the code.
2) Suppress SOL directory and dynspg_flt module

3) Clean momentum trend routines related to filtered free surface (trddyn, trdken, trd_oce).
4) Update reference configurations:

  • Replace key_dynspg_flt by key_dynspg_ts if needed in CONFIG/* directories.
  • Remove namsol block in namelist_* and references to flt variables (trends) in field_def.xml
  • SETTE: update sette.sh, to remove modifications of namelist variables related to solver.

NB: one should change "solver.stat" file and numsol names in stp_ctl and in_out_manager… keep it as is for the time being

=⇒ Commit changes to revision 5868 https://forge.ipsl.jussieu.fr/nemo/changeset?old_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&old=5867&new_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&new=5868

=⇒ Passes Sette tests:YES

Step 2: Suppress implicit pressure gradient option, ln_hpg_imp=T

Since this option is not supported with the now default split explicit free surface: remove it ( ⇒ simpler step routine). ln_hpg_imp namelist variable suppressed in reference namelist.

=⇒ Commit changes to revision 5869[ https://forge.ipsl.jussieu.fr/nemo/changeset?old_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&old=5868&new_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&new=5869]

=⇒ Passes Sette tests: YES

Step 3: Time Stepping readibility / cleaning

1) dynzdf
Make time stepping identical in explicit or split-explicit cases ⇒ assume that "after" velocities not tendencies are available after vertical diffusion of momentum (as for tracers) ⇒ modify dynzdf/dynnxt routines

2) step

  • Group all dynamical trends at the same place (at the beginning of the time stepping). Still keep dynnxt after tracer time stepping at the end.
  • Assuming ua/va are not used anymore during tracer computation as working arrays, remove temporary 3d arrays ua_sv, va_sv

3) Suppress obsolete dynspg_oce module, remove key_dynspg_ts / key_dynspg_exp (add namelist variables instead)

!-----------------------------------------------------------------------
&namdyn_spg    !   surface pressure gradient
!-----------------------------------------------------------------------
   ln_dynspg_exp  = .false.   !  explicit free surface
   ln_dynspg_ts   = .true.    !  split-explicit free surface
/

4) Reviewed AGRIF code in the case of explicit free surface: slight changes in agrif_opa_interp module, but otherwise ok (quickly tested in ORCA2 Agulhas configuration)

=⇒ Commit changes to revision: 5902 https://forge.ipsl.jussieu.fr/nemo/changeset?old_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&old=5869&new_path=%2Fbranches%2F2015%2Fdev_r5847_MERCATOR9_solveur_simplification&new=5902
=⇒ Passes Sette [tests:? tests: YES]

Step 4: Additional things to do:

  • Correct momentum trend computation with time splitting (Gurvan, your input here ?)
  • Remove filtered free surface from documentation

=⇒ Commit changes to revision: ???
=⇒ Passes Sette tests:???