wiki:ImplementationGuide

Version 25 (modified by lnerger, 7 years ago) (diff)

--

Implementation Guide

This page contains the implementation guide for the online mode of PDAF in which the numerical model is coupled with PDAF into a single program. The implementation guide for the offline mode, in which separate programs for model integrations and assimilation step are executed, is provided on a separate page. The differences between the online and offline modes is described on the page on the Implementation concept of PDAF.

For applied concrete examples on the implementation of a data assimilation system with PDAF, we recommend to first see our implementation tutorials. The implementation guide here will then give a more complete, but also more abstract, guide for all options.

The implementation of PDAF with an existing model

For the online-mode of data assimilation, the numerical model has to be combined with PDAF into a single program to generate the assimilation system. The implementation of PDAF with an existing model can be performed in a few steps. A possible sequence is the following:

  1. Adaptation of the parallelization
  2. Initialization of PDAF and the ensemble by PDAF_init
  3. Modification of the model code for the ensemble integration
  4. Implementation of the analysis step
  5. Adding memory and timing information

The implementation steps are described on the pages linked above. An example of the implementation is given in the test suite provided with PDAF with the routines in testsuite/main/ and testsuite/dummymodel_1D/. Another example is provided in the tutorial implementations in the directory tutorial/.

Several subroutines that contain model and observation specific operations are called as call-back routines by PDAF. For this, PDAF defines interfaces for all routines. These routines need to be implemented by the user. The operations in all these routines are rather elementary like the initialization of the model's physical fields from a state vector provided by PDAF and the initialization of the vector of observations. The examples mentioned above also include example implementations for these routines. In addition, the directory templates/ contains template implementations of the routines that can be used as a basis for new implementations.

An overview of the available options for each filter that can be specified when PDAF is initialized is given on the overview page on options.