= Implementation of the analysis step with OMI = {{{ #!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
}}} {{{ #!html

Implementation Guide

  1. Main page
  2. Adaptation of the parallelization
  3. Initialization of PDAF
  4. Modifications for ensemble integration
  5. PDAF-OMI Overview
}}} The 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. With 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. There are three different routines that call the filter analysis step. * [ImplementFilterAnalysisOverview General overview] of routines required to implement the analysis step for ensemble filters. 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] For the application of the 3D-Var methods there are separate routines (added with PDAF 2.0): * [wiki:Implement3DVarAnalysisOverview General overview] of routines required to implement the analysis step for 3D-Var. 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 of the analysis step without OMI == PDAF-OMI was introduced with version 1.16 of PDAF. While we recommend using OMI, the [wiki:ImplementationofAnalysisStep_noOMI implementation of the analysis step without OMI] 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'. To speed up the testing it can be useful to comment out the time stepping part. In that case only the model initialization and the assimilation cycle would be executed, without the usually costly time integration of the ensemble. One should then check if all user-supplied routines perform as they should. = Offline Mode: Implementation of the analysis step = {{{ #!html

Offline Mode: Implementation Guide

  1. Main page
  2. Adaptation of the parallelization
  3. Initialization of PDAF
  4. Implementation of the analysis step
  5. Memory and timing information
}}} The 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. Several of the routines are general and hence usable for all filter algorithms. There are some differences between local (LSEIK and LETKF) and global filters (SEIK, SEEK, EnKF, ETKF). The routines are described in separate pages for each filter algorithm. The general routines will be repeated, but they are marked as general. Generally the required routines are identical for the offline and online mode. Thus, below, we link to the description of the implementation for the online mode. The most relevant difference is that the routine `U_collect_state` (`collect_state_offline_D.F90` in the example implementation in `offline_1D/`) is not executed. The routine has to exist, but functionality is not required! Filter-specific implementations for global filters: * [ImplementAnalysisseik Implementation of the analysis for the SEIK filter] * [ImplementAnalysisetkf Implementation of the analysis for the ETKF] * [ImplementAnalysisseek Implementation of the analysis for the SEEK filter] * [ImplementAnalysisenkf Implementation of the analysis for the EnKF] * [ImplementAnalysisestkf Implementation of the analysis for the ESTKF] * [ImplementAnalysisnetf Implementation of the analysis for the NETF] * [ImplementAnalysispf Implementation of the analysis for the PF] Filter-specific implementations for local filters: * [ImplementAnalysislseik Implementation of the analysis for the LSEIK filter] * [ImplementAnalysisletkf Implementation of the analysis for the LETKF] * [ImplementAnalysislestkf Implementation of the analysis for the LESTKF] * [ImplementAnalysislnetf Implementation of the analysis for the LNETF] == 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'.