wiki:SoftwarePackage

Version 41 (modified by lnerger, 2 days ago) ( diff )

--

The Software Release

Getting the code package

see the Download page for information on downloading PDAF and for registering to PDAF's maillist.

Structure of the package

The software package contains the following directories:

  • lib/
    • This is the directory in which the library object file of PDAF is created upon compilation.
  • make.arch/
    • This directory contains machine-specific include files for the Makefile.
  • modelbindings/
    • This directory contains links to the PDAF model coupling codes for real simulation models
  • models/
    • This directory contains fully implemented toy models for assimilation experiments with PDAF
  • src/
    • This directory contains the source code of the core routines of PDAF. In addition, a Makefile is included to compile the PDAF library file.
  • templates/
    • This directory contains stubs for all user-supplied routines required by the different filters. These files can be used for the own implementation (alternatively one can base on the routines of the tutorial implementations in tutorial/.)
  • tests/
    • This directory contains implementations of PDAF for detailed tests. For more details see the section on the test suite
  • tutorial/
    • This directory contains example implementations of the analysis step in the online and offline modes of PDAF
  • external/
    • From PDAF V2.0, this directory contains external libraries, in particular solver methods used in 3D-Var

Compiling the PDAF library

The library file of PDAF can be compiled on its own or in connection with an example implementations from tutorial/ or models/. In order to build the library file, you need a Fortran-2003 compatible compiler and 'make'. In addition, the libraries 'BLAS', 'LAPACK', and 'MPI' are required.

The compilation itself is described on the page on compiling PDAF.

Tutorial Implementations

The directory tutorial/ contains different example implementations as well as inputs file used to run the examples. They are the recommended starting point to study the online and offline implementations of PDAF.

  • offline_2D_serial
    • This directory contains the example implementation of the offline mode without parallelization
  • offline_2D_parallel
    • This directory contains a parallel example implementation of the offline mode
  • online_2D_serialmodel
    • This directory contains an example implementation of the online mode with a serial model
  • online_2D_serialmodel_2fields
    • This directory contains an example implementation of the online mode with a serial model showing the implementation for 2 model fields
  • online_2D_parallelmodel
    • This directory contains an example implementation of the online model with a parallelized model

Please see the Tutorial Page for the tutorials describing these implementations.

Models

The following example implementations are included in the sub-directories in models/:

  • lorenz63
    • This directory contains the Lorenz-63 model with a full data assimilation implementation with PDAF. Because of its small size, this model an be, e.g., used with the Particle Filter. Compiling and running this model is described in detail on the page on the Lorenz-63 model.
  • lorenz96
    • This directory contains the Lorenz-96 model with a full data assimilation implementation with PDAF. This model can be configured to have a sufficiently large state dimension to test ensemble filter algorithms like the ESTKF filter with localization. (We have used this model in different published studies.) Compiling and running this model is described in detail on the page on the Lorenz-96 model.
  • lorenz2005b
    • This directory contains the Lorenz-2005 model variant II (introduced by Lorenz, 2005) with a full data assimilation implementation with PDAF. The model is considered as an improved variant of the Lorenz-96 model.
  • lorenz2005c
    • This directory contains the two-scale model Lorenz-2005-III (introduced by Lorenz, 2005), there called model variant III) with a full data assimilation implementation of the model with PDAF.

The Test Suite

The directory tests/ contains implemenations for detailed testing of PDAF. The implmentations base on the tutorial cases, but include the full set of options. It is rather intended for our internal verification tests. One can run tests by executing runtests_online.sh or runtests_offline.sh. For checking with reference outputs, Python scripts are used.

There is also a script runtests.sh in the directory tutorial/, which runs analogously.

Compiling test cases and tutorial implementations

To get started with PDAF we recommend to follow the instructions on First Steps with PDAF.

Note: See TracWiki for help on using the wiki.