Please note - These models are now supported on the new pages to be found at the TRAINING page on the NCEO webpage.


This page contains models that may be used to illustrate facets of data assimilation.

If you use or download any of these models we love to know about it. Please email r.brugge@rdg.ac.uk and let us know. Thank you.

Conditions of use

The software and documentation on this site are made available for educational purposes and personal study only. They may be freely distributed as long as the original source is acknowledged. Copyright remains with the original authors.

The programs

The first six programs listed here contain links to code provided as part of the 2002 NATO ASI Summer School in data Assimilation, using a page for that school written by Amos Lawless.

4D-var double pendulum (Fortran 77, Ross Bannister)
Numerical weather prediction models are complicated, cumbersome, and require extensive resources to work. To demonstrate the technique of 4d-Var, we resort to a very simple physical system that has itself little to do with atmospheric science - the double pendulum. Unlike a weather prediction model, which could contain over a million degrees of freedom, the double pendulum is described by just four variables. These the are two angles and their time rates of changes.

The Cressman scheme (Matlab, Amos Lawless)
This program is a very simple implementation of a basic Cressman scheme, to illustrate how the scheme performs in areas of sparse and dense observations.

Effect of statistical analysis parameters (IDL/PV-Wave, Richard Swinbank)
This set of routines allows the user to see how different settings of the statistical parameters affect the final analysis, using small one-dimensional optimal interpolation problems. Three different routines are provided, which are explained in the documentation. It is also necessary to include the routines plclose.pro and plopen.pro in your directory, to enable printing of plots.

Lorenz system (Matlab, A. Lawless, M. Martin and M. Wlasak)
Several different assimilation schemes are coded for the three-variable Lorenz system. For each of them identical twin experiments can be run and compared for different assimilation and observation parameters. The documentation provides a series of suggested exercises. All the programs use the routine menu_asl.m, which is an altered version of the standard menu routine and must be downloaded with the main programs.

Sequential schemes

4D-Var and incremental 4D-Var


Oscillating system with sequential data assimilation schemes (Matlab, M. Martin & A. Lawless)
Four sequential data assimilation schemes are implemented on the oscillating system problem. The user can choose which data assimilation scheme to use and can add random noise to the observations. All inputs are through menu interfaces. The programs use the routine menu_asl.m, which is an altered version of the standard menu routine and must be downloaded with the main programs.

Initialization (Matlab, Peter Lynch)
This program illustrates the principle of linear and nonlinear normal mode initialization on the swinging spring problem. The user can compare how the two initializations perform as the parameters of the problem are changed. For more information on this problem, including a Java animation, see Peter Lynch's Swinging Spring page.

Inverse model of solar system dynamics (Fortran 77, Ross Bannister)
Kepler's equation describes the classical motion of a mass in an inverse square gravitational field. It provides a simple yet useful approximation to the motion of the major planets of our solar system. It is useful to think of solving Kepler's equation as a forward problem - given the six orbital parameters of a planet, we can predict where the planet will be at a specific time. The inverse problem asks the reverse question. Given a set of observed positions, what are the six parameters? The fortran code (plus user guide) provided here will attempt to infer the six orbital parameters that are consistent optimally with planetary observations.

Oxford/RAL Spring School: Computer Exercises (Clive Rodgers)
These are the exercises associated with Clive Rodgers' course on Inverse Methods. There are three versions:
  • Matlab
  • IDLbe IDL for big-endian machines
  • IDLle IDL for little-endian machines
The codes can be downloaded from here. The file needs to be gunzipped and then the files can be extracted (on a unix system using tar -xvf *.tar ).

Irrotational Shallow Water Model (Fortran 90 - Amos Lawless)
This is an incremental 4D-Var assimilation applied to a one-dimensional shallow water system for the flow of a fluid over an obstacle in the absence of rotation. The nonlinear system can be modified to use either a Perturbation Forecast Model (PFM) or a Tangent Linear Model (TLM) as the linearisation method.
The code can be found here. The documentation to run the model can be found here.

Eady model (Fortran 90 - Christine Johnson)
The 2D Eady model is combined with 4D-Var data assimilation and tested on temperature field observations taken at two different time intervals. The dynamics of the model interpolate through the observations in both space and time, while filtering observational noise.
The code can be found here, while detailed documentation about the model can be found here. You should look at the ReadME file for further information on installation of the code.

The Heat Equation (Fortran 90 -- David Bailey)
The heat equation is used to demonstrate an estimation of systematic and time correlated errors from the variational data assimilation procedure. The improved method generates a correction term which leads to an improved estimate of the system over a standard scheme.
The code can be found here, and detailed documentation here.


The page's Web-Counter says that you are visitor number since 7 September 2004 -- data provided via www.digits.com