= Implementing the Analysis Step = {{{ #!html

Implementation Guide - Analysis step

  1. Implementing the analysis step

  2. Localized ensemble Kalman filters
    1. Implementation for LESTKF
    2. Implementation for LETKF
    3. Implementation for LSEIK
    4. Implementation for LEnKF
    5. Implementation for EnSRF/EAKF
  3. Global ensemble Kalman filters
    1. Implementation for ESTKF
    2. Implementation for ETKF
    3. Implementation for SEIK
    4. Implementation for EnKF
    5. Implementation for SEEK
  4. Nonlinear DA methods
    1. Implementation for NETF
    2. Implementation for LNETF
    3. Implementation for PF
    4. Implementation for LKNETF
  5. 3D-Var methods
    1. Implementation for 3D-Var
    2. Implementation for 3D Ensemble Var
    3. Implementation for Hybrid 3D-Var
}}} || This page describes the implementation of the analysis step using PDAF's full interface. This implementation doe snot use the PDAF3 interface and is hence done without using PDAF-OMI. Please see the [wiki:ImplementationofAnalysisStep_PDAF3 page on the Analysis Step Using the PDAF3 Interface] for the current efficient implementation variant using universal interface routines. || 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 the available local and global filters. The routines are described in separate pages for each filter algorithm. The general routines will be repeated, but they are marked as general. Filter-specific implementations for domain-local ensemble Kalman filters: * [ImplementAnalysislestkf Implementation of the analysis for the LESTKF] * [ImplementAnalysisletkf Implementation of the analysis for the LETKF] * [ImplementAnalysislseik Implementation of the analysis for the LSEIK filter] Filter-specific implementation for ensemble Kalman filters with covariance localization: * [ImplementAnalysislenkf Implementation of the analysis for the LEnKF] * [wiki:ImplementAnalysisENSRF_EAKF Implementation of the analysis for the EnSRF and EAKF] Filter-specific implementations for global ensemble Kalman filters: * [ImplementAnalysisestkf Implementation of the analysis for the ESTKF] * [ImplementAnalysisetkf Implementation of the analysis for the ETKF] * [ImplementAnalysisseik Implementation of the analysis for the SEIK filter] * [ImplementAnalysisseek Implementation of the analysis for the SEEK filter] * [ImplementAnalysisenkf Implementation of the analysis for the EnKF] Filter-specific implementation for nonlinear DA methods (global and localized): * [ImplementAnalysislnetf Implementation of the analysis for the LNETF] * [ImplementAnalysisnetf Implementation of the analysis for the NETF] * [ImplementAnalysispf Implementation of the analysis for the PF] * [ImplementAnalysislknetf Implementation of the analysis for the hybrid LKNETF] Method-specific implementation for 3D-Var schemes: * [wiki:ImplementAnalysis_3DVar_classical Implementation of the analysis for 3D-Var with parameterized background covariance matrix] * [wiki:ImplementAnalysis_3DEnVar_classical Implementation of the analysis for 3D Ensemble Var ] * [wiki:ImplementAnalysis_Hyb3DVar_classical Implementation of the analysis for hybrid 3D-Var] (The filters ESTKF and LESTKF have been added with PDAF version 1.8; the filters LEnKF, NETF and LNETF have been addid with PDAF version 1.12; the 3D-Var methods have been added with PDAF version 2.0; LKNETF was added with PDAF 2.1; EnSRF and EAKF have been added with PDAF version 3.0.) == 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.