Lorenz 96
Overview
The Lorenz 96 model was first described by Edward Lorenz during a seminar at the European Centre for Medium-Range Weather Forecasts in the Autumn of 1995, the proceedings of which were published as Lorenz (1996) [1] the following year, hence the model is commonly referred to as Lorenz 96.
Lorenz and Emmanuel (1998) [2] describe the model as:
… consisting of 40 ordinary differential equations, with the dependent variables representing values of some atmospheric quantity at 40 sites spaced equally about a latitude circle. The equations contain quadratic, linear, and constant terms representing advection, dissipation, and external forcing. Numerical integration indicates that small errors (differences between solutions) tend to double in about 2 days. Localized errors tend to spread eastward as they grow, encircling the globe after about 14 days.
We have chosen a model with \(J\) variables, denoted by:
\[X_1, ... , X_j;\]in most of our experiments we have let \(J = 40\). The governing equations are:
\[dX_j/dt=(X_{j+1}-X_{j-2})X_{j-1}-X_j+F (1)\]for:
\[j=1,...,J.\]To make Eq. (1) meaningful for all values of j we define:
\[X_{-1}=X_{J-1}, X_0=X_J, \& X_{J+1}=X_1,\]so that the variables form a cyclic chain, and may be looked at as values of some unspecified scalar meteorological quantity, perhaps vorticity or temperature, at J equally spaced sites extending around a latitude circle. Nothing will simulate the atmosphere’s latitudinal or vertical extent.
For Lorenz 96, DART advances the model, gets the model state and metadata describing this state, finds state variables that are close to a given location, and does spatial interpolation for model state variables.
The Lorenz 96 model has a work/workshop_setup.csh
script that compiles and
runs an example. This example is referenced at various points in the
DART tutorial
and is intended to provide insight into model/assimilation behavior.
The example may or may not result in good (or even decent!) results!
Be aware that the input.nml
file is modified by the workshop_setup.csh
script.
There are also some excellent Matlab tools to explore the behavior of the
Lorenz 96 model, namely run_lorenz_96.m
and run_lorenz_96_inf.m
, both of
which are part of the DART_LAB Tutorial.
Namelist
The &model_nml
namelist is read from the input.nml
file. Namelists
start with an ampersand &
and terminate with a slash /
. Character
strings that contain a /
must be enclosed in quotes to prevent them from
prematurely terminating the namelist.
&model_nml
model_size = 40,
forcing = 8.00,
delta_t = 0.05,
time_step_days = 0,
time_step_seconds = 3600
/
Description of each namelist entry
Item |
Type |
Description |
---|---|---|
model_size |
integer |
Number of variables in model. |
forcing |
real(r8) |
Forcing, F, for model. |
delta_t |
real(r8) |
Non-dimensional timestep. This is mapped to the dimensional timestep specified by time_step_days and time_step_seconds. |
time_step_days |
integer |
Number of days for dimensional timestep, mapped to delta_t. |
time_step_seconds |
integer |
Number of seconds for dimensional timestep, mapped to delta_t. |