Changes between Version 27 and Version 28 of ImplementationConceptOnline
- Timestamp:
- Aug 5, 2026, 3:41:05 PM (2 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImplementationConceptOnline
v27 v28 34 34 35 35 [[Image(//pics/DAextension_PDAF3.png)]] 36 [[BR]]'''Figure 1:''' (left) Generic structure of a model code, (right) modified structure for ''fully-parallel'' data assimilation system with PDAF. The figure assumes that the model is parallelized, such that it initializes its parallelization in the step `Initial parallelization`. If the model is not parallelized this step does not exist.36 [[BR]]'''Figure 1:''' (left) Generic flow of a model code where the shown parts are usually subroutines called by the model main program, (right) modified structure for ''fully-parallel'' data assimilation system with PDAF. The figure assumes that the model is parallelized, such that it initializes its parallelization in the step `Initial parallelization`. If the model is not parallelized this step does not exist. 37 37 38 38 39 39 '''Extensions for the fully-parallel assimilation system'''[[BR]] 40 The right side of Figure 1 shows the extensions required for the ''fully-parallel'' assimilation system (marked green) :40 The right side of Figure 1 shows the extensions required for the ''fully-parallel'' assimilation system (marked green). These are additional subroutine calls: 41 41 * **init_parallel_pdaf**: This subroutine is inserted close to the start of the model 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 compute the time stepping for an ensemble of models ("model tasks") at the same time. The routine calls the PDAF core routine `PDAF3_init_parallel` to let PDAF configure the parallelization variables (in implementations of PDAF before verison 3.0, this call is not present; in PDAF 3.0, a routine `PDAF3_set_parallel` was used). 42 42 * **init_pdaf**: This subroutine is added after the initialization part of the model, just before the time stepping loop. In this subroutine one defines parameters for PDAF and then one calls the core initialization routine `PDAF3_init` (in implementations of PDAF before version 3.0, this routine was called `PDAF_init`). This core routine initializes internal parameters and afterwards the array of ensemble states using a user-provided call-back routine. Subsequently, one calls the PDAF core routine `PDAF3_init_forecast` (in implementations of PDAF before version 3.0, this routine was called `PDAF_get_state`). This routine initializes model fields from the array of ensemble states using a call-back routine. In addition, it returns the number of time steps that have to be computed in the following forecast phase.
