wiki:OfflineImplementationGuide_PDAF_2_3

Version 2 (modified by lnerger, 2 hours ago) ( diff )

--

Offline Mode: Implementation Guide for PDAF 2

This Implementaton Guide describes the implementation of the offline mode as of PDAF V2.3. This is intended as reference for existing implementations before the release of PDAF V3.0. For new implementations, we recommend to follow the updated Implementation Guide for PDAF 3.

This page contains the Implementation Guide for the offline mode of PDAF. The implementation guide for the online mode, which uses a direct coupling of the model and PDAF, 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.

The implementation of PDAF in offline mode

For the offline mode of data assimilation, the ensemble integrations by the numerical model are executed separately from the assimilation program, which computes the analysis step. Thus, the model code can remain unchanged in the offline mode. The calls to functions of PDAF are only contained in the assimilation program.

An example of the implementation is given in the tutorial provided with PDAF 2 in tutorial/offline_2D_serial (or tutorial/offline 2D_parallel for a parallelized case). These examples base on the template code at templates/offline. Several subroutines that contain specific operations for the model and observations are called by PDAF through its defined interface as call-back routines. These subroutines need to be implemented by the user. The operations in all these subroutines are rather elementary like filling the array of the ensemble of model states from model output files and the initialization of the vector of observations. The tutorial code includes examples for these routines for a simple case.

The implementation of the assimilation program for PDAF in offline mode can be performed in several steps. A possible sequence is the following:

  1. Initialize the parallelization
  2. Initialization of PDAF and the ensemble by PDAF_init
  3. Implementation of the analysis step
  4. Adding memory and timing information

Generating initial ensembles

To perform ensemble data assimilation one has to create an initial ensemble, which is then used in the data assimilation process. There are various different ways to generate an ensemble (like random picking of model states, breeding, short-term integrations of perturbed model fields, second-order exact sampling from EOFs). PDAF provides routines to use snapshots from a model integration to first compute EOFs (empirical orthogonal functions) and then to use the EOFs to perform a constrained random transformation to obtain ensemble perturbations to which a central state (i.e. ensemble mean) is added. This second-order exact sampling (Pham, 2001) showed good performance in our own data assimilation applications.

The ensemble generation is described on the separate page:

  1. Ensemble Generation
Note: See TracWiki for help on using the wiki.