Changes between Version 3 and Version 4 of OnlineModifyModelforEnsembleIntegration_PDAF3


Ignore:
Timestamp:
Apr 16, 2026, 6:50:08 PM (9 hours ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OnlineModifyModelforEnsembleIntegration_PDAF3

    v3 v4  
    2525On 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`.
    2626
    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]. ||
    2828
    2929The 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.
     
    4141These steps are described below.
    4242
    43 == Calling `PDAF_init_forecast` ==
     43== Calling `PDAF3_init_forecast` ==
    4444
    4545The 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.
    4646
    47 The interface of `PDAF_init_forecast` is:
     47The interface of `PDAF3_init_forecast` is:
    4848{{{
    49   SUBROUTINE PDAF_init_forecast(next_observation_pdaf, distribute_state_pdaf, &
     49  SUBROUTINE PDAF3_init_forecast(next_observation_pdaf, distribute_state_pdaf, &
    5050                                prepoststep_pdaf, status)
    5151}}}