= General Implementation Concept of PDAF =
== Logical separation of the assimilation system ==
{{{
#!html
}}}
[[PageOutline(2-3,Contents of this page)]]
PDAF bases on the localization separation of the assimilation system in 3 parts. These are depicted in figure 1.
[[Image(//pics/da_structure.png)]]
[[BR]]'''Figure 1:''' Logical structure of an assimilation system.
The parts of the assimilation system are
* Model:[[BR]] The numerical model provides the initialization and integration of all model fields. It defines the dynamics of the system that is simulated.
* Observations:[[BR]] The observations of the system provide additional information.
* Filter:[[BR]] The filter algorithms combine the model and observational information.
Generally, all three components are independent. In particular, the filters are implemented in the core part of PDAF. To combine the model and observational information one has to define the relation of the observations to the models fields (For example, model fields might be directly observed or the observed quantities are more complex functions of the model fields? In addition, the observations might be available on grid points. If not, interpolation is required.) In addition one has to define the relation of the state vector that is considered in the filter algorithms to the model fields. These relations are defined in separate routines that are supplied to the assimilation system by the user. These routines are called through a well-defined standard interface. To ease the implementation complexity, these user-defined routines can be implemented like routines of the model code. Thus, if a user has experience with the model, it should be rather easy to extend it by the routines required for the assimilation system.
== Online and offline assimilation systems ==
There are two possibilities to build a data assimilation system
1. '''Online mode:''' [[BR]] The model code is extended by calls to PDAF core routines. A single executable is compiled. While running this single executable the necessary ensemble integrations and the actual assimilation is performed.
1. '''Offline mode:''' [[BR]] The model is executed separately from the assimilation/filter program. Output files from the model are used as inputs for the assimilation program.
PDAF supports both the online and offline modes. Generally, we recommend to use the online mode because it is more efficient on parallel computers. However, the required coding is simpler for the offline than the online mode.
The better efficiency of the online mode of the data assimilation system is caused by several factors:
* The initialization phase of the model program is only executed once
* The output files are limited to the necessary outputs for the estimated forecast and analysis states and/or ensembles. In contrast for the offline mode restart files have to be written and read for each forecast/assimilation cycle.
* The assimilation system for the online mode can make efficient use of a large number of processors by executing a single program containing the full assimilation system. In contrast, in the offline mode, separate programs for the forecasts and the assimilation have to be run, each of these use typically less processors.
The implementation concepts of the online and offline modes of PDAF are described on separate pages:
* [ImplementationConceptOnline Online mode: Attaching PDAF to a model]
* [ImplementationConceptOffline Offline mode: Separating model integrations and the assimilation step]