Implementation of the Analysis Step with OMI
PDAF-OMI Guide
- Overview
- callback_obs_pdafomi.F90
- Observation Modules
- Observation operators
- Checking error status
- Debugging functionality
- Implementing the analysis step with OMI
- Using nondiagonal R-matrices
- Porting an existing implemention to OMI
- Additional OMI Functionality
Implementation Guide
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.
- General overview of routines required to implement the analysis step for ensemble filters.
- Implementation of the analysis for Global Filters
- Implementation of the analysis for Local Filters
- 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):
- General overview of routines required to implement the analysis step for 3D-Var.
- Implementation of the analysis for 3D-Var with parameterized background covariance matrix
- Implementation of the analysis for 3D Ensemble Var
- 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 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.