= General Implementation Concept of PDAF =
== Logical separation of the assimilation system ==
{{{
#!html
}}}
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. '''Offline mode:''' [[BR]] The model is executed separately from the assimilation/filter code. Output files from the model are used as inputs for the assimilation program.
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.
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 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]