Time stepping environment

The time stepping used in NEMO is a three level scheme that can be represented as follows:

$\displaystyle x^{t+\rdt} = x^{t-\rdt} + 2   \rdt  $   RHS$\displaystyle _x^{t-\rdt, t, t+\rdt}$ (3.1)

where $ x$ stands for $ u$, $ v$, $ T$ or $ S$; RHS is the Right-Hand-Side of the corresponding time evolution equation; $ \rdt$ is the time step; and the superscripts indicate the time at which a quantity is evaluated. Each term of the RHS is evaluated at a specific time step depending on the physics with which it is associated.

The choice of the time step used for this evaluation is discussed below as well as the implications for starting or restarting a model simulation. Note that the time stepping calculation is generally performed in a single operation. With such a complex and nonlinear system of equations it would be dangerous to let a prognostic variable evolve in time for each term separately.

The three level scheme requires three arrays for each prognostic variable. For each variable $ x$ there is $ x_b$ (before), $ x_n$ (now) and $ x_a$. The third array, although referred to as $ x_a$ (after) in the code, is usually not the variable at the after time step; but rather it is used to store the time derivative (RHS in (3.1)) prior to time-stepping the equation. Generally, the time stepping is performed once at each time step in the tranxt.F90 and dynnxt.F90 modules, except when using implicit vertical diffusion or calculating sea surface height in which case time-splitting options are used.

Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17