= Implementing the analysis step = [[PageOutline(2-3,Contents of this page)]] {{{ #!html

Online Mode: Implementation Guide

  1. Back to Main page
}}} {{{ #!html

Offline Mode: Implementation Guide

  1. Back to Main page
}}} {{{ #!html

PDAF-OMI Guide

  1. Overview
  2. callback_obs_pdafomi.F90
  3. Observation Modules
  4. Observation operators
  5. Debugging functionality
  6. Implementing the analysis step with OMI
    1. General overview for ensemble filters
      1. Implementation for Global Filters
      2. Implementation for Local Filters
      3. Implementation for LEnKF
    2. General overview for 3D-Var methods
      1. Implementation for 3D-Var
      2. Implementation for 3D Ensemble Var
      3. Implementation for Hybrid 3D-Var
  7. Porting an existing implemention to OMI
  8. Using domain-limited observations
}}} 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. 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. == Ensemble filter methods == To get an overview of the required routines for the analysis step see: * [ImplementFilterAnalysisOverview General overview of routines required to implement the analysis step for ensemble filters]. There are universal routines that call the filter analysis step for all ensemble filter methods. * [ImplementAnalysisUniversal Implementation of the analysis using the universal routines.] For more specific cases, there are further routines * [wiki:ImplementAnalysisUniversalLocal Implementation with user-provided routines for transfer between global and local state vectors (g2l_state_pdaf/l2g_state_pdaf) in local filters] * [wiki:ImplementanalysisGlobalPDAF3 Implemenation exclusively for global filters and LEnKF] 1. [ImplementAnalysisGlobal Implementation of the analysis for Global Filters] 1. [ImplementAnalysisLocal Implementation of the analysis for Local Filters] 1. [ImplementAnalysislenkfOmi Implementation of the analysis for the LEnKF using covariance localization] == 3D-Var methods == To get an overview of the required routines for the analysis step of 3D-Var methods see: * [wiki:Implement3DVarAnalysisOverview General overview of routines required to implement the analysis step for 3D-Var]. For the application of the 3D-Var methods there are universal routines for all methods: * [wiki:Implement3DVarAnalysisUniversal Implementation of the analysis using the universal routines.] For more specific cases, there are further routines 1. [wiki:ImplementAnalysis_3DVar Implementation of the analysis for 3D-Var with parameterized background covariance matrix] 1. [wiki:ImplementAnalysis_3DEnVar Implementation of the analysis for 3D Ensemble Var ] 1. [wiki:ImplementAnalysis_Hyb3DVar Implementation of the analysis for hybrid 3D-Var] == Implementation Variants before PDAF3 == === Implementation of the analysis step using PDAF-OMI without PDAFlocal === 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. 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. || For reference we provide the documentation on the **[wiki:ImplementAnalysisLocal_untilPDAF221 implementation of the analysis step with PDAF-OMI not using PDAFlocal].** || === Implementation of the analysis step using PDAF's full interface === 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. || For reference we provide the documentation on the **[wiki:OfflineImplementationofAnalysisStep_noOMI implementation of the analysis step without OMI]**, which is still possible. || == Testing the full implementation == After 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'.