Changes between Initial Version and Version 1 of ImplementationGuide_online


Ignore:
Timestamp:
May 20, 2025, 9:03:49 AM (11 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementationGuide_online

    v1 v1  
     1= Online Mode: Implementation Guide =
     2
     3{{{
     4#!html
     5<div class="wiki-toc">
     6<h4>Online Mode: Implementation Guide</h4>
     7<ol><li>Main page</li>
     8<li><a href="AdaptParallelization">Adaptation of the parallelization</a></li>
     9<li><a href="InitPdaf">Initialization of PDAF</a></li>
     10<li><a href="ModifyModelforEnsembleIntegration">Modifications for ensemble integration</a></li>
     11<li><a href="ImplementationofAnalysisStep">Implementation of the analysis step</a></li>
     12<li><a href="PDAF_OMI_Overview">PDAF-OMI, the Observation Module Infrastructure</a></li>
     13<li><a href="AddingMemoryandTimingInformation">Memory and timing information</a></li>
     14<li>Additional functionality</li>
     15<ol>
     16<li><a href="EnsembleGeneration">Ensemble Generation</a></li>
     17<li><a href="DataAssimilationDiagnostics">Ensemble Diagnostics</a></li>
     18<li><a href="AuxiliaryRoutines">Auxiliary routines</a></li>
     19<li><a href="ImplementGenerateObs">Generate synthetic observations</a></li>
     20<li><a href="AvailableOptionsforInitPDAF">Filter-specific options</a></li>
     21</ol>
     22</ol>
     23</div>
     24}}}
     25
     26|| We recommend to check first the **[wiki:PdafTutorial PDAF Tutorials]**, which provide an easy step-by-step description for assimilation program in the offline and oneline modes utilizing example tutorial codes. [[BR]][[BR]]The Implementation Guide provides more details, e.g. descriptions of the defined interfaces, but is less applied. ||
     27
     28This 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 [OfflineImplementationGuide implementation guide for the offline mode], in which separate programs for model integrations and assimilation step are executed, is provided on a [OfflineImplementationGuide separate page]. The differences between the online and offline modes is described on the page on the [GeneralImplementationConcept Implementation concept of PDAF].
     29
     30For applied concrete examples on the implementation of a data assimilation system with PDAF, we recommend to first see our [PdafTutorial implementation tutorials]. The implementation guide here will then give a more complete, but also more abstract, guide for all options.
     31 
     32
     33== The implementation of PDAF with an existing model ==
     34
     35For the online-mode of data assimilation, the numerical model has to be combined with PDAF into a single program to generate the assimilation system. This is done by adding several function calls into the model code.
     36The implementation of PDAF with an existing model can be performed in a few steps. A possible sequence is the following:
     37
     38 1. [AdaptParallelization Adaptation of the parallelization]
     39 2. [InitPdaf Initialization of PDAF and the ensemble by PDAF_init]
     40 3. [ModifyModelforEnsembleIntegration Modification of the model code for the ensemble integration]
     41 4. [ImplementationofAnalysisStep Implementation of the analysis step]
     42 5. [AddingMemoryandTimingInformation Adding memory and timing information]
     43
     44In Steps 1 to 3, PDAF is attached to the numerical model to allow it to perform ensemble integrations. Step 4 completes the data assimilation program with the analysis step. Finally, step 5 is optional to obtain information on the computing time and required memory.
     45The implementation steps are described on the pages linked above. Examples of the implementation are given in tutorial code provided with PDAF in `tutorial/online_2D_serialmodel/` and `tutorial/online_2D_parallelmodel/`. (The [PdafTutorial tutorial] also provides detail explanations of the implementation steps).
     46
     47Several subroutines that contain specific operations for the model and observations 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.
     48
     49An overview of the available options for each filter that can be specified when PDAF is initialized is given on the [wiki:AvailableOptionsforInitPDAF overview page on options].
     50
     51
     52== Generating initial ensembles ==
     53
     54To 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.
     55
     56The ensemble generation is described on the separate page:
     57
     58 1. [EnsembleGeneration Ensemble Generation]