Changes between Version 3 and Version 4 of OnlineModifyModelforEnsembleIntegration_PDAF3
- Timestamp:
- Apr 16, 2026, 6:50:08 PM (9 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OnlineModifyModelforEnsembleIntegration_PDAF3
v3 v4 25 25 On the [wiki:ImplementationConceptOnline Page on the Implementation Concept of the Online Mode] we explained the modification of the model code for the ensemble integration. Here, we focus on the ''fully parallel'' implementation variant, which only needs minor code changes. In this case, the number of model tasks is equal to the ensemble size such that each model task integrates exactly one model state. In this case, the model always moves forward in time. As before, we refer to the example code for the online mode in `tutorial/online_2D_parallelmodel` and `tutorial/online_2D_serialmodel`. 26 26 27 || The more complex ''flexible'' parallelization variant is described separately on the page: [OnlineFlexible_PDAF3 Modification of the model code for the ''flexible'' implementation variant]. ||27 || We recommend to use this ''fully parallel'' implementation variant. The more complex ''flexible parallelization'' variant is described separately on the page: [wiki:OnlineFlexible_PDAF3 Modification of the model code for the ''flexible'' implementation variant]. || 28 28 29 29 The extension to the model code for the ''fully parallel'' implementation is depicted in the figure below (See also the page on the [ImplementationConceptOnline implementation concept of the online mode.]) As at this stage of the implementation the calls to `init_parallel_pdaf` and `init_pdaf` are already inserted into the code, the difference is in the addition of routines for the time stepping. The parallel ensemble integration is enabled by the configuration of the parallelization that was done by `init_parallel_pdaf` in the first step of the implementation. This does not require further code changes. … … 41 41 These steps are described below. 42 42 43 == Calling `PDAF _init_forecast` ==43 == Calling `PDAF3_init_forecast` == 44 44 45 45 The routine `PDAF_init_forecast` is called at the end of the routine `init_pdaf` that was discussed on the [InitPdaf page on initializing PDAF]. The main purpose of this routine is to initialize the model fields for all model tasks from the ensemlbe of state vectors. This is done in the call-back routine `distribute_state_pdaf`. The routine also calls the call-back routine `next_observation_pdaf` to set the number of time steps for the initial forecast phase and an exit flag. These values used are internally by PDAF to control the forecast phase. Further, the routine calls the call-back-routine `prepoststep_pdaf`. This pre/postep routine provides the user access to the initial ensemble. 46 46 47 The interface of `PDAF _init_forecast` is:47 The interface of `PDAF3_init_forecast` is: 48 48 {{{ 49 SUBROUTINE PDAF _init_forecast(next_observation_pdaf, distribute_state_pdaf, &49 SUBROUTINE PDAF3_init_forecast(next_observation_pdaf, distribute_state_pdaf, & 50 50 prepoststep_pdaf, status) 51 51 }}}
