132 | | 1. If you used local filters with `PDAFlocalomi_assimilate` or `PDAFlocalomi_put_state`: Change the call of the analysis routine to `PDAF3_assimilate`. In addition move the argument `prepoststep_pdaf` to the correct position. |
133 | | 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_`. In addition move the argument `prepoststep_pdaf` to the correct position. (Generally, we recommend to use `PDAF3_assimilate` that uses PDAFlocal. For this follow the [wiki:PDAFlocal_overview implementation instructions to for implementing the state localization with PDAFlocal].) |
134 | | 1. If you only used global filters with `PDAFomi_assimilate_global` or `PDAFomi_put_state_global`: Just change the call of the analysis routine from `PDAFomi_` to `PDAF3_`. |
135 | | 1. If you used both `PDAFomi_assimilate_global` and `PDAFlocalomi_assimilate` you can merge the calls to using only `PDAF3_assimilate` by adapting the call to `PDAFlocalomi_assimilate` as described above and then calling this routine for all filters. |
136 | | 1. If you used the LEnKF with `PDAFomi_assimilate_lenkf` or `PDAFomi_put_state_lenkf`: Change the call of the analysis routine for `PDAFlocalomi_` to `PDAF3_`. In addition move the argument `prepoststep_pdaf` to the correct position. (There is also the new routine `PDAF_set_localize_covar` which allows user to use `PDAF3_assimilate` (or `PDAF3_assimilate_global` which makes implementing the additional routine `localize_covar_pdafomi` obsolete) |
137 | | 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`. |
| 132 | |
| 133 | Overview of old and new routines (the relations hold analogously for 'put_state' routines): |
| 134 | ||= old PDAF2 =||= new PDAF3 =||= possible with changes =|| |
| 135 | || PDAFlocalomi_assimilate || PDAF3_assimilate || |
| 136 | || PDAFomi_assimilate_local || PDAF3_assimilate_local || PDAF3_assimilate || |
| 137 | || PDAFomi_assimilate_global || PDAF3_assimilate_global || PDAF3_assimilate || |
| 138 | || PDAFomi_assimilate_lenkf || PDAF3_assimilate_lenkf || PDAF3_assimilate || |
| 139 | || PDAF_assimilate_X || PDAF_assimilate_X || |
| 140 | |
| 141 | Explanations: |
| 142 | 1. If you used local filters with `PDAFlocalomi_assimilate` or `PDAFlocalomi_put_state`:[[BR]] Change the call of the analysis routine to `PDAF3_assimilate`. In addition move the argument `prepoststep_pdaf` to the correct position. |
| 143 | 1. If you used local filters with `PDAFomi_assimilate_local` or `PDAFomi_put_state_local`:[[BR]] Change the call of the analysis routine from `PDAFomi_` to `PDAF3_`. In addition move the argument `prepoststep_pdaf` to the correct position. |
| 144 | * Possible: One can adapt the code to use `PDAF3_assimilate` that uses PDAFlocal. For this follow the [wiki:ImplementAnalysisUniversal implementation instructions for PDAF3_assimilate].) |
| 145 | 1. If you only used global filters with `PDAFomi_assimilate_global` or `PDAFomi_put_state_global`:[[BR]] Just change the call of the analysis routine from `PDAFomi_` to `PDAF3_`. |
| 146 | * Possible: If you used both `PDAFomi_assimilate_global` and `PDAFlocalomi_assimilate`, you can merge the calls to using only `PDAF3_assimilate` by adapting the call to `PDAFlocalomi_assimilate` as described above and then calling this routine for all filters. |
| 147 | 1. If you used the LEnKF with `PDAFomi_assimilate_lenkf` or `PDAFomi_put_state_lenkf`:[[BR]] Change the call of the analysis routine for `PDAFlocalomi_` to `PDAF3_`. In addition move the argument `prepoststep_pdaf` to the correct position. |
| 148 | * Possible: There is also the new routine `PDAF_set_localize_covar` which makes implementing the additional routine `localize_covar_pdafomi` obsolete and allows user to use `PDAF3_assimilate`. |
| 149 | 1. If you used the `PDAF_assimilate_*` or `PDAF_put_state_*` routines with the full interface of PDAF1:[[BR]] There is no direct need to port to the PDAF3 interface because the full PDAF1 interface routines are still present. One just needs to include them with `USE PDAF`. |
| 150 | * Possible: To port to the PDAF3 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. |
140 | | 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'/ |
141 | | 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_`. |
142 | | 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_`. |
143 | | 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_`. |
144 | | 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. |
145 | | 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`. |
| 153 | |
| 154 | Overview of old and new routines (the relations hold analogously for 'put_state' routines): |
| 155 | ||= old PDAF2 =||= new PDAF3 =||= possible with changes =|| |
| 156 | || PDAFomi_assimilate_3dvar || PDAF3_assimilate_3dvar || PDAF3_assimilate_3dvar_all || |
| 157 | || PDAFomi_assimilate_en3dvar_lestkf || PDAF3_assimilate_en3dvar_lestkf || PDAF3_assimilate_3dvar_all || |
| 158 | || PDAFomi_assimilate_en3dvar_estkf || PDAF3_assimilate_en3dvar_estkf || PDAF3_assimilate_3dvar_all || |
| 159 | || PDAFlocalomi_assimilate_hy3dvar_lestkf || PDAF3_assimilate_3dvar_all || |
| 160 | || PDAFlocalomi_assimilate_hy3dvar_estkf || PDAF3_assimilate_hy3dvar_estkf ||PDAF3_assimilate_3dvar_all || |
| 161 | |
| 162 | Explanations: |
| 163 | |
| 164 | 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:[[BR]] Change the call `PDAFlocalomi_assimilate_hy3dvar_lestkf` to `PDAF3_assimilate_3dvar_all` and call this routine for all 3D-Var methods. |
| 165 | 1. If you used only the parameterized 3D-Var using `PDAFomi_assimilate_3dvar` or `PDAFomi_put_state_3dvar`:[[BR]] Just change the call of the analysis routine from `PDAFomi_` to `PDAF3_`. |
| 166 | 1. If you used the hybrid 3D-Var with `PDAFlocalomi_assimilate_hyb3dvar_lestkf` or `PDAFlocalomi_put_state_hyb3dvar_lestkf`:[[BR]] Just change the call of the analysis routine from `PDAFlocalomi_` to `PDAF3_`. |
| 167 | 1. If you used the ensemble 3D-Var with `PDAFlocalomi_assimilate_en3dvar_lestkf` or `PDAFlocalomi_put_state_en3dvar_lestkf`:[[BR]] Just change the call of the analysis routine from `PDAFlocalomi_` to `PDAF3_`. |
| 168 | 1. If you used the hybrid 3D-Var or ensemble 3D-Var with `PDAFomi_*` routines:[[br]] 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. |
| 169 | 1. If you used the `PDAF_assimilate_*` or `PDAF_put_state_*` routines with the full interface of PDAF-1:[[BR]] There is no direct need to port to the PDAF3 interface because the full PDAF1 interface routines are still present. One just needs to include them with `USE PDAF`. |
| 170 | * Possible: To port to the PDAF3 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. |