Changes between Version 19 and Version 20 of ImplementAnalysislestkf
- Timestamp:
- Jun 3, 2025, 5:17:32 PM (3 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ImplementAnalysislestkf
v19 v20 41 41 == Overview == 42 42 43 With Version 1.8 of PDAF, the LESTKF [Local Error Subspace Transform Kalman Filter]algorithm has been introduced. The user-supplied routines required for the LESTKF are identical to those required for the LSEIK filter.43 With Version 1.8 of PDAF, the LESTKF (Local Error Subspace Transform Kalman Filter) algorithm has been introduced. The user-supplied routines required for the LESTKF are identical to those required for the LSEIK filter. 44 44 45 45 For the analysis step of the LESTKF, several operations related to the observations are needed. These operations are requested by PDAF by calling user-supplied routines. Intentionally, the operations are split into separate routines in order to keep the operations rather elementary as this procedure should simplify the implementation. The names of the required routines are specified in the call to the routine `PDAF_assimilate_lestkf` in the fully-parallel implementation (or `PDAF_put_state_lestkf` for the 'flexible' implementation) described below. With regard to the parallelization, all these routines (except `U_collect_state`, `U_distribute_state`, and `U_next_observation`) are executed by the filter processes (`filterpe=.true.`) only. … … 52 52 == `PDAF_assimilate_lestkf` == 53 53 54 The general aspects of the filter-specific routines `PDAF_assimilate_*` have been described on the page [ ModifyModelforEnsembleIntegration Modification of the model code for the ensemble integration] and its sub-page on [InsertAnalysisStep inserting the analysis step]. The routine is used in the fully-parallel implementation variant of the data assimilation system. When the 'flexible' implementation variant is used, the routines `PDAF_put_state_*' is used as described further below.54 The general aspects of the filter-specific routines `PDAF_assimilate_*` have been described on the page [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 Modification of the model code for the ensemble integration]. The routine is used in the fully-parallel implementation variant of the data assimilation system. When the 'flexible' implementation variant is used, the routines `PDAF_put_state_*' is used as described further below. 55 55 The interface for the routine `PDAF_assimilate_lestkf` contains several routine names for routines that operate on the local analysis domains (marked by `_l` at the end of the routine name). In addition, there are names for routines that consider all available observations required to perform local analyses with LESTKF within some sub-domain of a domain-decomposed model (marked by `_f` at the end of the routine name). In case of a serial execution of the assimilation program, these will be all globally available observations. However, if the program is executed with parallelization, this might be a smaller set of observations. 56 56 … … 94 94 == `PDAF_put_state_lestkf` == 95 95 96 When the 'flexible' implementation variant is chosen for the assimilation system, the routine `PDAF_put_state_lestkf` has to be used instead of `PDAF_assimilate_lestkf`. The general aspects of the filter specific routines `PDAF_put_state_*` have been described on the page [ ModifyModelforEnsembleIntegrationModification of the model code for the ensemble integration]. The interface of the routine is identical with that of `PDAF_assimilate_lestkf` with the exception the specification of the user-supplied routines `U_distribute_state` and `U_next_observation` are missing.96 When the 'flexible' implementation variant is chosen for the assimilation system, the routine `PDAF_put_state_lestkf` has to be used instead of `PDAF_assimilate_lestkf`. The general aspects of the filter specific routines `PDAF_put_state_*` have been described on the page [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 Modification of the model code for the ensemble integration]. The interface of the routine is identical with that of `PDAF_assimilate_lestkf` with the exception the specification of the user-supplied routines `U_distribute_state` and `U_next_observation` are missing. 97 97 98 98 The interface when using the LESTKF algorithm is the following: … … 107 107 == User-supplied routines == 108 108 109 Here, all user-supplied routines are described that are required in the call to `PDAF_assimilate_lestkf` or `PDAF_put_state_lestkf`. For some of the generic routines, we link to the page on [ ModifyModelforEnsembleIntegrationmodifying the model code for the ensemble integration].109 Here, all user-supplied routines are described that are required in the call to `PDAF_assimilate_lestkf` or `PDAF_put_state_lestkf`. For some of the generic routines, we link to the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3 modifying the model code for the ensemble integration]. 110 110 111 111 To indicate user-supplied routines we use the prefix `U_`. In the tutorials in `tutorial/` and in the template directory `templates/` these routines exist without the prefix, but with the extension `_pdaf`. The files are named correspondingly. In the section titles below we provide the name of the template file in parentheses. … … 116 116 117 117 This routine is independent from the filter algorithm used. 118 See the mape on [ InsertAnalysisStep#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine.118 See the mape on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine. 119 119 120 120 === `U_distribute_state` (distribute_state_pdaf.F90) === 121 121 122 122 This routine is independent of the filter algorithm used. 123 See the page on [ InsertAnalysisStep#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine.123 See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine. 124 124 125 125 … … 207 207 === `U_prepoststep` (prepoststep_ens_pdaf.F90) === 208 208 209 This routine can be identical to that used for the global ESTKF algorithm, which has already been described on the [ ModifyModelforEnsembleIntegration#U_prepoststepprepoststep_ens.F90 page on modifying the model code for the ensemble integration]. For completeness, the description is repeated:209 This routine can be identical to that used for the global ESTKF algorithm, which has already been described on the [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#U_prepoststepprepoststep_ens.F90 page on modifying the model code for the ensemble integration]. For completeness, the description is repeated: 210 210 211 211 The interface of the routine is identical for all filters. However, the particular operations that are performed in the routine can be specific for each filter algorithm. … … 447 447 448 448 This routine is independent of the filter algorithm used. 449 See the page on [ InsertAnalysisStep#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine.449 See the page on [wiki:OnlineModifyModelforEnsembleIntegration_PDAF3#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine. 450 450 451 451