RK3 time stepping branch formerly on http://forge.ipsl.jussieu.fr/nemo/browser/NEMO/branches/2021/dev_r14318_RK3_stage1.
NEMO RK3 time-stepping is a one-step method based on 3 stages. At stage 1 a simplified version of the momentum conservation equations ( advection, vorticity and the pressure gradient at n) to integrate velocities from n to n+1/3 and a simplified version of the tracer conservation equation (advection at n) to integrate tracers from n to n+1/3. At stage 2 a simplified version of the momentum conservation equations (advection, vorticity and the pressure gradient at n+1/3) to integrate velocities from n to n+1/2 and a simplified version of the tracer conservation equation (advection at n+1/3) to integrate tracers from n to n+1/2. During the last stage (from n to n+1 with n+1/2) the system is fully integrated and uses. NEMO RK3 time-splitting is called the single first algorithm. The external mode is integrated at the beginning of a time-step. It provides interpolated sea surface height and barotropic velocities for stages 1 and 2. It also includes passive tracers, sea-ice, the ability to make AGRIF zooms, forcing and boundaries management and ice-shelves. Important features such as implicit vertical advection, explicit time stepping, offline tracer integration are still missing and others such as wetting and drying or assimilation have not been tested yet.
The time-stepping was entirely re-written for RK3. Since RK3 in a one-step method a time-step only require fields at n so the restart strategy and forcing management were revised or adapted. Trends were switched off during stages 1 and 2.
- adapt leap frog environment for RK3 : introduce advective velocities
- implement RK3 time-stepping with respect to SWE prototype
- implement single first time-splitting
- optimization of eos (density anomaly calculation) and traqsr (solar flux penetration)
- adapt AGRIF to RK3 time-stepping
- fix boundary conditions in RK3 case
- implement and adapt passive tracers routines (AGE, TOP, PISCES)
- fix forcing management and trends management
- finalize for SETTE except OFF
The code has been technically validated in most cases : restartability and reproducibility
$ ./sette.sh -AtF
|MLF||OK but ICE_AGRIF||OK|
|RK3||? but OFF||? but OFF|
MLF time-stepping has benefits from optimizations (trazdf, dynadv, dynzad) then results are not excepted to be identical with the previous version.
Note: Before next merge party there must be a cleaning of unused options (dynadv : no_zad)