13 | | Here we provide an overview of the routine names and the links to the interface descriptions. We distinguish the cases that the observation error covariance matrix **R** is diagonal from those that **R** is non-diagonal, i.e. the case of correlated observation errors. |
| 13 | Here we provide an overview of the routine names and the links to the interface descriptions. We distinguish the cases that the observation error covariance matrix **R** is diagonal from those that **R** is non-diagonal, i.e. the case of correlated observation errors. |
| 14 | |
| 15 | The different parts of this page are |
| 16 | * [wiki:PDAF3_interface?AnalysisstepwithdiagonalRmatrix Analysis step with diagonal R matrix] |
| 17 | * [wiki:PDAF3_interface?Analysisstepwithnon-diagonalRmatrix Analysis step with non-diagonal R matrix] |
| 18 | * [wiki:PDAF3_interface?PortingtothePDAF3interface Porting to the PDAF3 interface] |
53 | | ||= 3DVar =|| [wiki:PDAF3_assimilate_3dvar] || [wiki:PDAF3_put_state_3dvar] || |
54 | | ||= En3DVar with ESTKF or LESTKF=|| [wiki:PDAF3_assimilate_en3dvar] || [wiki:PDAF3_put_state_en3dvar] || |
55 | | ||= hyb3DVar with ESTKF or LESTKF =|| [wiki:PDAF3_assimilate_hyb3dvar] || [wiki:PDAF3_put_state_hyb3dvar] || |
| 58 | ||= 3D-Var (parameterized) =|| [wiki:PDAF3_assimilate_3dvar] || [wiki:PDAF3_put_state_3dvar] || |
| 59 | ||= En3D-Var with ESTKF or LESTKF=|| [wiki:PDAF3_assimilate_en3dvar] || [wiki:PDAF3_put_state_en3dvar] || |
| 60 | ||= hyb3D-Var with ESTKF or LESTKF =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_put_state_3dvar_all] || |
| 61 | ||= Universal Routine [[BR]](all 3D-Var methods) =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_put_state_3dvar_all] || |
57 | | The routines for En3D-Var and hybrid 3D-Var are universal an can be used to with either the LESTKF or the global ESTKF depending on the chosen subtype. |
| 63 | **Note:** |
| 64 | * For the online-coupled case, the `PDAF3_assimilate_*` routines can be used for both the fully parallel and flexible parallization variants. |
| 65 | * The 'put_state' routines can also be used in the flexible parallelization mode. This is particularly relevant for an easier transition for existing PDAF2 implementations to the PDAF3 interface. For new implementations we recommend to the use `PDAF3_assimilate_*` routines. |
| 66 | * The particular routines for the parameterized 3D-Var have less arguments, because there is no ensemble filter involved. These routines are recommended if only the parameterized 3D-Var is implemented. |
| 67 | * Hybrid 3D-Var is called through the univeral routine, because the arguments would be the same for a routine that only executed the hybrid 3D-var schemes. |
| 68 | * There is a separate routine for the ensemble 3D-Var schemes, because they only involve covariance operations for the ensemble covariance and not the parameterized covariance. As such these routines need less arguments. However, if plans to implement both the parameterized 3D-Var and the ensemble 3D-Var one can right away use the universal routine. |
59 | | ||= En3DVar with LESTKF=|| [wiki:PDAF3_assimilate_en3dvar_lestkf] || [wiki:PDAF3_put_state_en3dvar_lestkf] || |
60 | | ||= Hyb3DVar with ESTKF =|| [wiki:PDAF3_assimilate_hyb3dvar_lestkf] || [wiki:PDAF3_put_state_hyb3dvar_lestkf] || |
| 70 | **Routines for particular cases** |
| 71 | |
| 72 | The generic routines for En3D-Var and hybrid 3D-Var listed in the table above can be used to with either the LESTKF or the global ESTKF depending on the chosen subtype. If one exclusively uses the global ESTKF to update the ensemble perturbations, one can use the following routines. These do not include the arguments specifying the subroutines for localization and are hence shorter |
| 73 | |
| 74 | ||= **Method** =||= online coupled =||= offline coupled =|| |
| 75 | ||= En3DVar with ESTKF=|| [wiki:PDAF3_assimilate_en3dvar_estkf] || [wiki:PDAF3_put_state_en3dvar_estkf] || |
| 76 | ||= Hyb3DVar with ESTKF =|| [wiki:PDAF3_assimilate_hyb3dvar_estkf] || [wiki:PDAF3_put_state_hyb3dvar_estkf] || |
109 | | 1. If you used local filter with `PDAFomi_assimilate_local` or `PDAFomi_put_state_local`: Change the call of the analysis routine from `PDAFomi_` to `PDAF3_` and follow the [wiki:PDAFlocal_overview implementation instructions to for implementing the state location with PDAFlocal]. |
110 | | 1. If you used the `PDAF_assimilate_*` or `PDAF_put_state_*` routines of PDAF-1, thus the routines with the full interface you need to follow the genral implementation instructions for PDAF3. The changes will be to use the functionality of PDAF-OMI and, for local filter, of PDAFlocal. |
| 122 | 1. If you used local filters with `PDAFomi_assimilate_local` or `PDAFomi_put_state_local`: Change the call of the analysis routine from `PDAFomi_` to `PDAF3_` and follow the [wiki:PDAFlocal_overview implementation instructions to for implementing the state localization with PDAFlocal]. |
| 123 | 1. If you used the `PDAF_assimilate_*` or `PDAF_put_state_*` routines of PDAF-1, thus the routines with the full interface, you need to follow the general implementation instructions for PDAF3. The changes will be to use the functionality of PDAF-OMI and, for local filter, of PDAFlocal. However, in PDAF3, the full PDAF-1 interface routines are still present. One just needs to include them with `USE PDAF`. |
| 124 | |
| 125 | **For 3D-Vars:** |
| 126 | 1. If you used the parameterized 3D-Var and also either or both of the ensemble 3D-Var and hybrid 3D-Var with PDAFlocalomi routines: Change the call `PDAFlocalomi_assimilate_hy3dvar_lestkf` to `PDAF3_assimilate_3dvar_all` and call this routine for all 3D-Var methods. This is analogous for 'put_state'/ |
| 127 | 1. If you used only the parameterized 3D-Var using `PDAFomi_assimilate_3dvar` or `PDAFomi_put_state_3dvar`: Just change the call of the analysis routine from `PDAFomi_` to `PDAF3_`. |
| 128 | 1. If you used the hybrid 3D-Var with `PDAFlocalomi_assimilate_hyb3dvar_lestkf` or `PDAFlocalomi_put_state_hyb3dvar_lestkf`: Just change the call of the analysis routine from `PDAFlocalomi_` to `PDAF3_`. |
| 129 | 1. If you used the ensemble 3D-Var with `PDAFlocalomi_assimilate_en3dvar_lestkf` or `PDAFlocalomi_put_state_en3dvar_lestkf`: Just change the call of the analysis routine from `PDAFlocalomi_` to `PDAF3_`. |
| 130 | 1. If you used the hybrid 3D-Var or ensemble 3D-Var with `PDAFomi_*` routines: Follow the [wiki:PDAFlocal_overview implementation instructions to for implementing the state localization with PDAFlocal]. Afterwards change the the PDAFomi_* call to the PDAF3_* interface. |
| 131 | 1. If you used the `PDAF_assimilate_*` or `PDAF_put_state_*` routines of PDAF-1, thus the routines with the full interface, you need to follow the general implementation instructions for PDAF3. The changes will be to use the functionality of PDAF-OMI and, for local filter, of PDAFlocal. However, in PDAF3, the full PDAF-1 interface routines are still present. One just needs to include them with `USE PDAF`. |