Changes between Version 1 and Version 2 of ImplementationConceptOnline


Ignore:
Timestamp:
May 18, 2011, 12:23:50 PM (13 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementationConceptOnline

    v1 v2  
    77The assimilation system is built by adding call to PDAF-routines to the general part of the model code. As only minimal changes to the model code are required, we refer to this as "attaching" PDAF to the model.
    88
    9 The general concept is depicted in figure 2. The left hand side shows a typical abstract structure of a numerical model. When the program is executed, the following steps are performed:
     9The general concept is depicted in figure 1. The left hand side shows a typical abstract structure of a numerical model. When the program is executed, the following steps are performed:
    1010 1. The model is initialized. Thus arrays for the model fields are allocated and filled with initial fields. Thus, the model grid is build up virtually in the program.
    1111 2. After the initialization the time stepping loop is performed. Here the model fields are propagated through time.
     
    1313
    1414[[Image(//pics/da_extension.png)]]
    15 [[BR]]'''Figure 2:''' (left) Generic structure of a model code, (right) extension for data assimilation with PDAF
     15[[BR]]'''Figure 1:''' (left) Generic structure of a model code, (right) extension for data assimilation with PDAF
    1616
    17 The right hand side of Figure 2 shows the extensions required for the assimilation system (marked yellow):
     17The right hand side of Figure 1 shows the extensions required for the assimilation system (marked yellow):
    1818 * Close to the start of the model code the routine `init_parallel_pdaf` as added to the code. If the model itself is parallelized the correct location is directly after the initialization of the parallelization in the model code. `init_parallel_pdaf` creates the parallel environment that allows to perform several time stepping loops at the same time.
    1919 * After the initialization part of the model, a routines `init_pdaf` is added. In this routine, parameters for PDAF can be defined and then the core initialization routine PDAF_init is called. This core routine also initializes the array of ensemble states.
     
    2222 * At the end of the external loop, the PDAF core routine `PDAF_put_state` is added to the model code. This routine write the propagated model fields back into a state vector of the ensemble array. Also it checks whether the ensemble integration is complete. If not, the next ensemble member will be integrated. If the ensemble integration is complete, the analysis step (i.e. the actual assimilation of the observations) is computed.
    2323
    24 With the implementation strategy of PDAF, four routines and the external loop have to be added to the model code. While this looks like a large change in figure 2, this change does actually only affect the general part of the model code. In addition, the amount of source code of the numerical model will be much longer than the addition for the data assimilation system.
     24With the implementation strategy of PDAF, four routines and the external loop have to be added to the model code. While this looks like a large change in figure 1, this change does actually only affect the general part of the model code. In addition, the amount of source code of the numerical model will be much longer than the addition for the data assimilation system.
    2525
    2626== Remarks on the implementation concept ==
     
    3232 * Model-specific operations like the initialization of the array of ensemble states in `PDAF_init` are actually performed by user-supplied routines. These routines are called through the standard interface of `PDAF`. Details on the interface and the required routines are given on the pages describing the implementation steps.
    3333 * The assimilation system is controlled by the user-supplied routines that are called through PDAF.  With this strategy, the assimilation program is essentially driven by the model part of the program. Thus, logically the model is not a sub-component of the assimilation system, but the implementation with PDAF results in a model extended for data assimilation.
    34  * The user-supplied routines can be implemented analogously to the model code. For example, if the model is writting using Fortran common blocks or modules of the model code, these can be used to implement the user-supplied routines, too. This simplifies the implementation of the user-supplied routines knowing about the particularities of their model.
     34 * The user-supplied routines can be implemented analogously to the model code. For example, if the model is implemented using Fortran common blocks or modules of the model code, these can be used to implement the user-supplied routines, too. This simplifies the implementation of the user-supplied routines knowing about the particularities of their model.