Changes between Version 55 and Version 56 of ImplementationofAnalysisStep


Ignore:
Timestamp:
Jun 10, 2025, 3:37:51 PM (7 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ImplementationofAnalysisStep

    v55 v56  
    2121
    2222
    23 The implementation of the analysis step requires that the user-supplied routines that are arguments in the call to the routine for the analysis step are implemented with full functionality.
     23The implementation of the analysis step requires that the user-supplied routines whose names are given in the call to the filter-specific put-state routine are implemented with full functionality.
    2424
    25 While different routines are used for the online and offline modes of PDAF, the implementation of the analysis is generally generic. As such we combine this here for both the online and offline modes.
     25With PDAF-OMI many of the routines are general and hence usable for all filter algorithms. There are some differences between the local and global filters and the LEnKF.  The general routines will be repeated, but they are marked as general.
    2626
    2727
    28 == Ensemble filter methods ==
    2928
    30 To get an overview of the required routines for the analysis step see:
    31  * [ImplementFilterAnalysisOverview General overview of routines required to implement the analysis step for ensemble filters].
     29There are three different routines that call the filter analysis step.
     30 * [wiki:ImplementFilterAnalysisOverview_PDAF23 General overview] of routines required to implement the analysis step for ensemble filters.
     31 1. [wiki:ImplementAnalysisGlobal_PDAF23 Implementation of the analysis for Global Filters]
     32 1. [wiki:ImplementAnalysisLocal_PDAF23 Implementation of the analysis for Local Filters]
     33 1. [wiki:ImplementAnalysislenkfOmi_PDAF23 Implementation of the analysis for the LEnKF using covariance localization]
     34
     35For the application of the 3D-Var methods there are separate routines (added with PDAF 2.0):
     36 * [wiki:Implement3DVarAnalysisOverview_PDAF23 General overview] of routines required to implement the analysis step for 3D-Var.
     37 1. [wiki:ImplementAnalysis_3DVar_PDAF23 Implementation of the analysis for 3D-Var with parameterized background covariance matrix]
     38 1. [wiki:ImplementAnalysis_3DEnVar_PDAF23 Implementation of the analysis for 3D Ensemble Var ]
     39 1. [wiki:ImplementAnalysis_Hyb3DVar_PDAF23 Implementation of the analysis for hybrid 3D-Var]
    3240
    3341
    34 There are universal routines that call the filter analysis step for all ensemble filter methods.
    35  * [wiki:ImplementAnalysisPDAF3Universal Implementation of the analysis using the universal routines.]
     42== Implementation of the analysis step without OMI ==
    3643
    37 For more specific cases, there are further routines
    38  * [wiki:ImplementAnalysisPDAF3UniversalLocal Implementation with user-provided routines for transfer between global and local state vectors (g2l_state_pdaf/l2g_state_pdaf) in local filters]
    39  * [wiki:ImplementanalysisPDAF3Global Implementation specific for global filters and LEnKF]
     44PDAF-OMI was introduced with version 1.16 of PDAF. While we recommend using OMI, the [wiki:OfflineImplementationofAnalysisStep_noOMI implementation of the analysis step without OMI] is still possible.
    4045
    41 
    42 == 3D-Var methods ==
    43 
    44 To get an overview of the required routines for the analysis step of 3D-Var methods see:
    45  * [wiki:Implement3DVarAnalysisOverview General overview of routines required to implement the analysis step for 3D-Var].
    46 
    47 For the application of the 3D-Var methods there are universal routines for all methods:
    48  * [wiki:Implement3DVarAnalysisPDAF3Universal Implementation of the analysis using the universal routines.]
    49 
    50 For more specific cases, there are further routines
    51 
    52  1. [wiki:ImplementAnalysisPDAF3_3DVar Implementation of the analysis for 3D-Var with parameterized background covariance matrix]
    53  1. [wiki:ImplementAnalysisPDAF3_3DEnVar Implementation of the analysis for 3D Ensemble Var ]
    54  1. [wiki:ImplementAnalysisPDAF3_Hyb3DVar Implementation of the analysis for hybrid 3D-Var]
    55 
    56 
    57 == Implementation variants before PDAF3 ==
    58 
    59 === Implementing the analysis step using PDAF-OMI without PDAFlocal ===
    60 
    61 This variant refers to the `PDAFomi_` routines to call the analysis step.
    62 
    63 Before releasing PDAF V3.0 with its now PDAF3-interface routines for the analysis step, using the PDAF Observation Module Interface (PDAF-OMI) was recommended. PDAFlocal was introduced with PDAF V2.3 in September 2024 as an add-on to PDAF-OMI for local filters. With PDAFlocal we simplified the localization of the state vector. Implementations done before the release of PDAF V2.3 likely use PDAF-OMI without PDAFlocal. This mean they call user-provided routines `g2l_state_pdaf` and `l2g_state_pdaf`.
    64 
    65 || For reference we provide the documentation on the  **[wiki:ImplementAnalysisLocal_untilPDAF221 implementation of the analysis step with PDAF-OMI not using PDAFlocal].** ||
    66 
    67 === Implementing the analysis step using PDAF-OMI and PDAFlocal ===
    68 
    69 This variant refers to the `PDAFlocalomi_` routines to call the analysis step.
    70 
    71 PDAFlocal was introduced with PDAF V2.3 in September 2024 as an add-on to PDAF-OMI for local filters. With PDAFlocal we simplified the implementation of localization of the state vector.
    72 without PDAFlocal. This mean they call user-procided routines `g2l_state_pdaf` and `l2g_state_pdaf`. Even so, the period between the introduction of PDAFlocal and the PDAF3 interface was short, there are possible implementations using PDAFlocal. The PDAF3 interface bases on both PDAF-OMI and PDAFlocal, so that it should be very easy to port a code to using the universal PDAF3 interface described above. See the [wiki:PortingToPDAF3 explanation for porting von PDAF2 to PDAF3].
    73 
    74 || For reference we provide the documentation on the  **[wiki:ImplementAnalysisLocal implementation of the analysis step with PDAF-OMI and PDAFlocal].** ||
    75 
    76 
    77 === Implementing the analysis step using PDAF's full interface ===
    78 
    79 This variant refers to the `PDAF_` routines to call the analysis step.
    80 
    81 The full interface omits the use of PDAF-OMI for the observation handling, and PDAFlocal for the simplified handling of localization. Using the full interface is an 'expert mode' because it requires to implement a larger number of call-back routines. Nonetheless, assimilation systems implemented before the introduction of PDAF-OMI with Version 1.16 in November 2020 might still use this approach.
    82 
    83 || For reference we provide the documentation on the  **[wiki:ImplementationofAnalysisStep_noOMI implementation of the analysis step without PDAF-OMI]**, which is still possible. ||
    8446
    8547== Testing the full implementation ==
    8648
    87 After the implementation of the user-supplied routines for the analysis step, the data assimilation system is fully implemented. Thus, one an now test its full functionality including the analysis step.
     49After the implementation of the user-supplied routines for the analysis step, the data assimilation system is fully implemented. In order to test the program one has to compile it without setting 'PDAF_NO_UPDATE'.
    8850
    8951