Start/Restart strategy

&namrun        !   parameters of the run
   nn_no       =       0   !  job number (no more used...)
   cn_exp      =  "ORCA2"  !  experience name
   nn_it000    =       1   !  first time step
   nn_itend    =    5475   !  last  time step (std 5475)
   nn_date0    =  010101   !  date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)
   nn_leapy    =       0   !  Leap year calendar (1) or not (0)
   ln_rstart   = .false.   !  start from rest (F) or from a restart file (T)
   nn_euler    =       1   !  = 0 : start with forward time step if ln_rstart=T
   nn_rstctl   =       0   !  restart control ==> activated only if ln_rstart=T
                           !    = 0 nn_date0 read in namelist ; nn_it000 : read in namelist
                           !    = 1 nn_date0 read in namelist ; nn_it000 : check consistancy between namelist and restart
                           !    = 2 nn_date0 read in restart  ; nn_it000 : check consistancy between namelist and restart
   cn_ocerst_in  = "restart"   !  suffix of ocean restart name (input)
   cn_ocerst_indir = "."       !  directory from which to read input ocean restarts
   cn_ocerst_out = "restart"   !  suffix of ocean restart name (output)
   cn_ocerst_outdir = "."      !  directory in which to write output ocean restarts
   nn_istate   =       0   !  output the initial state (1) or not (0)
   ln_rst_list = .false.   !  output restarts at list of times using nn_stocklist (T) or at set frequency with nn_stock (F)
   nn_stock    =    5475   !  frequency of creation of a restart file (modulo referenced to 1)
   nn_stocklist = 0,0,0,0,0,0,0,0,0,0 ! List of timesteps when a restart file is to be written
   nn_write    =    5475   !  frequency of write in the output file   (modulo referenced to nn_it000)
   ln_dimgnnn  = .false.   !  DIMG file format: 1 file for all processors (F) or by processor (T)
   ln_mskland  = .false.   !  mask land points in NetCDF outputs (costly: + ~15%)
   ln_cfmeta   = .false.   !  output additional data to netCDF files required for compliance with the CF metadata standard
   ln_clobber  = .false.   !  clobber (overwrite) an existing file
   nn_chunksz  =       0   !  chunksize (bytes) for NetCDF file (works only with iom_nf90 routines)

The first time step of this three level scheme when starting from initial conditions is a forward step (Euler time integration):

$\displaystyle x^1 = x^0 + \rdt  $   RHS$\displaystyle ^0$ (3.11)

This is done simply by keeping the leapfrog environment ($ i.e.$ the (3.1) three level time stepping) but setting all $ x^0$ (before) and $ x^{1}$ (now) fields equal at the first time step and using half the value of $ \rdt$.

It is also possible to restart from a previous computation, by using a restart file. The restart strategy is designed to ensure perfect restartability of the code: the user should obtain the same results to machine precision either by running the model for $ 2N$ time steps in one go, or by performing two consecutive experiments of $ N$ steps with a restart. This requires saving two time levels and many auxiliary data in the restart files in machine precision.

Note that when a semi-implicit scheme is used to evaluate the hydrostatic pressure gradient (see §6.4.5), an extra three-dimensional field has to be added to the restart file to ensure an exact restartability. This is done optionally via the nn_dynhpg_rst namelist parameter, so that the size of the restart file can be reduced when restartability is not a key issue (operational oceanography or in ensemble simulations for seasonal forecasting).

Note the size of the time step used, $ \rdt$, is also saved in the restart file. When restarting, if the the time step has been changed, a restart using an Euler time stepping scheme is imposed. Options are defined through the namrun namelist variables.

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