Changes between Version 4 and Version 5 of ImplementAnalysis_Hyb3DVar_PDAF23


Ignore:
Timestamp:
Jun 10, 2025, 2:58:51 PM (5 weeks ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementAnalysis_Hyb3DVar_PDAF23

    v4 v5  
    5353== Overview ==
    5454
    55 This page describes the recommended implementation of the analysis step of local filters with OMI using the PDAFlocal interface that was introduced with PDAF V2.3. The older approach calling PDAFomi_assimilate_hyb3dvar_lestkf or PDAFomi_put_state_hyb3dvar_lestkf is documented on the page on [wiki:ImplementAnalysis_3DEnVar_untilPDAF221 Implementing the Analysis Step for 3D Ensemble Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
     55This page describes the recommended implementation of the analysis step of local filters with OMI using the PDAFlocal interface that was introduced with PDAF V2.3. The older approach calling PDAFomi_assimilate_hyb3dvar_lestkf or PDAFomi_put_state_hyb3dvar_lestkf is documented on the page on [wiki:ImplementAnalysis_Hyb3DVar_until_PDAF221 Implementing the Analysis Step for 3D Ensemble Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
    5656
    5757There are genenerally three different variants: parameterized 3D-Var, 3D Ensemble Var, and hybrid (parameterized + ensemble) 3D-Var.
     
    6868== Analysis Routines ==
    6969
    70 The general aspects of the filter (or solver) 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. Here, we list the full interface of the routine. Subsequently, the user-supplied routines specified in the call is explained.
     70The general aspects of the filter (or solver) specific routines `PDAF_assimilate_*` have been described on the page [wiki:ModifyModelforEnsembleIntegration_PDAF23 Modification of the model code for the ensemble integration] and its sub-page on [wiki:InsertAnalysisStep_PDAF23 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. Here, we list the full interface of the routine. Subsequently, the user-supplied routines specified in the call is explained.
    7171
    7272There are two variants that either compute the transformataion of the ensemble transformation using the local LESTKF method, or the global ESTKF.
     
    136136Notes:
    137137 * The interface of `PDAFomi_assimilate_en3dvar_estkf` is identical to that of `PDAFomi_assimilate_3dvar` apart from using the routines `U_cvt_ens` and `U_cvt_adj_ens` in case of the ensemble variational method.
    138  * If your code shows a call to `PDAFomi_assimilate_hyb3dvar_lestkf`, it uses the implementation variant without PDAFlocal. This is documented on the page on [wiki:ImplementAnalysis_Hyb3DVar_untilPDAF221 Implementing the Analysis Step for hybrid 3D Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
     138 * If your code shows a call to `PDAFomi_assimilate_hyb3dvar_lestkf`, it uses the implementation variant without PDAFlocal. This is documented on the page on [wiki:ImplementAnalysis_Hyb3DVar_until_PDAF221 Implementing the Analysis Step for hybrid 3D Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
    139139
    140140=== `PDAFlocalomi_put_state_hyb3dvar_lestkf` ===
    141141
    142 When the 'flexible' implementation variant is chosen for the assimilation system, the routine `PDAFomi_put_state_*` has to be used instead of `PDAFomi_assimilate_*`. The general aspects of the filter specific routines `PDAF_put_state_*` have been described on the page [ModifyModelforEnsembleIntegration Modification of the model code for the ensemble integration]. The interface of the routine is identical with that of `PDAF_assimilate_*` with the exception the specification of the user-supplied routines `U_distribute_state` and `U_next_observation` are missing.
     142When the 'flexible' implementation variant is chosen for the assimilation system, the routine `PDAFomi_put_state_*` has to be used instead of `PDAFomi_assimilate_*`. The general aspects of the filter specific routines `PDAF_put_state_*` have been described on the page [wiki:ModifyModelforEnsembleIntegration_PDAF23 Modification of the model code for the ensemble integration]. The interface of the routine is identical with that of `PDAF_assimilate_*` with the exception the specification of the user-supplied routines `U_distribute_state` and `U_next_observation` are missing.
    143143
    144144The interface when using one of the global filters is the following:
     
    153153
    154154Note:
    155  * If your code shows a call to `PDAFomi_put_state_hyb3dvar_lestkf`, it uses the implementation variant without PDAFlocal. This is documented on the page on [wiki:ImplementAnalysis_Hyb3DVar_untilPDAF221 Implementing the Analysis Step for hybrid 3D Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
     155 * If your code shows a call to `PDAFomi_put_state_hyb3dvar_lestkf`, it uses the implementation variant without PDAFlocal. This is documented on the page on [wiki:ImplementAnalysis_Hyb3DVar_until_PDAF221 Implementing the Analysis Step for hybrid 3D Var with OMI without PDAFlocal (until V2.2.1 of PDAF)].
    156156
    157157=== `PDAFomi_put_state_hyb3dvar_estkf` ===
     
    170170== User-supplied routines ==
    171171
    172 Here all user-supplied routines are described that are required in the call to the assimilation routines for hybrid 3D-Var. For some of the generic routines, we link to the page on [ModifyModelforEnsembleIntegration modifying the model code for the ensemble integration].
     172Here all user-supplied routines are described that are required in the call to the assimilation routines for hybrid 3D-Var. For some of the generic routines, we link to the page on [wiki:ModifyModelforEnsembleIntegration_PDAF23 modifying the model code for the ensemble integration].
    173173
    174174To indicate user-supplied routines we use the prefix `U_`. In the template directory `templates/` as well as in the tutorial implementations in `tutorial/` these routines exist without the prefix, but with the extension `_pdaf.F90`. The user-routines relating to OMI are collected in the file `callback_obs_pdafomi.F90`. In the section titles below we provide the name of the template file in parentheses.
     
    181181This routine is independent of the filter algorithm used.
    182182
    183 See the page on [InsertAnalysisStep#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine.
     183See the page on [wiki:InsertAnalysisStep_PDAF23#U_collect_statecollect_state_pdaf.F90 inserting the analysis step] for the description of this routine.
    184184
    185185
     
    188188This routine is independent of the filter algorithm used.
    189189
    190 See the page on [InsertAnalysisStep#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine.
     190See the page on [wiki:InsertAnalysisStep_PDAF23#U_distribute_statedistribute_state_pdaf.F90 inserting the analysis step] for the description of this routine.
    191191
    192192
     
    195195This is a call-back routine for PDAF-OMI initializing the observation information. The routine just calls a routine from the observation module for each observation type.
    196196
    197 See the [wiki:OMI_Callback_obs_pdafomi documentation on callback_obs_pdafomi.F90] for more information.
     197See the [wiki:OMI_Callback_obs_pdafomi_PDAF23 documentation on callback_obs_pdafomi.F90] for more information.
    198198
    199199
     
    203203This is a call-back routine for PDAF-OMI applying the observation operator to the state vector. The routine calls a routine from the observation module for each observation type.
    204204
    205 See the [wiki:OMI_Callback_obs_pdafomi documentation on callback_obs_pdafomi.F90] for more information.
     205See the [wiki:OMI_Callback_obs_pdafomi_PDAF23 documentation on callback_obs_pdafomi.F90] for more information.
    206206
    207207
     
    295295This is a call-back routine for PDAF-OMI applying the linearized observation operator to the state vector. The routine calls a routine from the observation module for each observation type. If the full observation operator is lineaer the same operator can be used here.
    296296
    297 See the [wiki:OMI_Callback_obs_pdafomi documentation on callback_obs_pdafomi.F90] for more information.
     297See the [wiki:OMI_Callback_obs_pdafomi_PDAF23 documentation on callback_obs_pdafomi.F90] for more information.
    298298
    299299
     
    302302This is a call-back routine for PDAF-OMI applying the adjoint observation operator to some vector inthe observation space. The routine calls a routine from the observation module for each observation type.
    303303
    304 See the [wiki:OMI_Callback_obs_pdafomi documentation on callback_obs_pdafomi.F90] for more information.
     304See the [wiki:OMI_Callback_obs_pdafomi_PDAF23 documentation on callback_obs_pdafomi.F90] for more information.
    305305
    306306
     
    370370This is a call-back routine for PDAF-OMI that initializes the local observation vector. The routine calls a routine from the observation module for each observation type.
    371371
    372 See the [wiki:OMI_Callback_obs_pdafomi documentation on callback_obs_pdafomi.F90] for more information.
     372See the [wiki:OMI_Callback_obs_pdafomi_PDAF23 documentation on callback_obs_pdafomi.F90] for more information.
    373373
    374374
     
    377377The routine has already been described for modifying the model for the ensemble integration and for inserting the analysis step.
    378378
    379 See the page on [InsertAnalysisStep#U_prepoststepprepoststep_ens_pdaf.F90 inserting the analysis step] for the description of this routine.
     379See the page on [wiki:InsertAnalysisStep_PDAF23#U_prepoststepprepoststep_ens_pdaf.F90 inserting the analysis step] for the description of this routine.
    380380
    381381
     
    384384This routine is independent of the filter algorithm used.
    385385
    386 See the page on [InsertAnalysisStep#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine.
     386See the page on [wiki:InsertAnalysisStep_PDAF23#U_next_observationnext_observation_pdaf.F90 inserting the analysis step] for the description of this routine.
    387387
    388388
     
    412412 1. [#U_prepoststepprepoststep_ens_pdaf.F90 U_prepoststep] (Call to act on the analysis ensemble, called with (positive) value of the time step)
    413413
    414 The iterative optimization abovve computes an updated ensemble mean state. Subsequently, the ensemble perturbations are updated using the LESTKF or ESTKF. The execution of the routines for these filters is described for the LESTKF on the [wiki:ImplementAnalysisLocal page on implementing the local filter analysis step] and for the ESTKF on the [wiki:ImplementAnalysisGlobal page on implementing the global filter analysis step].
     414The iterative optimization abovve computes an updated ensemble mean state. Subsequently, the ensemble perturbations are updated using the LESTKF or ESTKF. The execution of the routines for these filters is described for the LESTKF on the [wiki:ImplementAnalysisLocal_PDAF23 page on implementing the local filter analysis step] and for the ESTKF on the [wiki:ImplementAnalysisGlobal_PDAF23 page on implementing the global filter analysis step].
    415415
    416416In case of the routine `PDAFomi_assimilate_*`, the following routines are executed after the analysis step: