Changes between Version 10 and Version 11 of PDAF3_interface
- Timestamp:
- Apr 21, 2025, 12:06:30 PM (7 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PDAF3_interface
v10 v11 28 28 29 29 ||= =||= online coupled =||= offline coupled =|| 30 ||= Universal Routine [[BR]]for all filters =|| [wiki:PDAF3_assimilate] || [wiki:PDAF3_ put_state] ||30 ||= Universal Routine [[BR]]for all filters =|| [wiki:PDAF3_assimilate] || [wiki:PDAF3_assim_offline] || 31 31 For the online-coupled case, `PDAF3_assimilate` can be used for both the fully parallel and flexible parallization variants. 32 32 33 33 **Routines for particular cases** 34 34 35 To enable an easier transition for existing PDAF2 implementations of the flexible parallelization mode to the PDAF3interface, one can use the routine 36 ||= Universal Routine [[BR]]for flexible parallel[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] || 37 38 The universal routines include in their interface three routines related to localization. These are only executed for local filters. For the particualr case, that one only uses global filters or the LEnKF one can use one of the routines 35 The universal routines specify in their interface three routines related to localization. These are only executed for local filters. For the particualr case, that one only uses global filters or the LEnKF one can use one of the routines 39 36 ||= =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]](backward-compatibility)** =|| 40 37 ||= global filters[[BR]]& LEnKF =|| [wiki:PDAF3_assimilate_global] || [wiki:PDAF3_put_state_global] || 41 38 39 **Routines for backward-compatibility with PDAF-2** 40 41 To enable an easier transition for existing PDAF2 implementations to the PDAF3 interface, there are a set of routines. 42 43 For easier transition of the flexible parallelization mode to the PDAF3 interface, one can use the routine 44 ||= Universal Routine for flexible parallel[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] || 45 46 For easier transition of implementations that use local filters without PDAFlocal (thus usually `PDAFomi_assimilate_local`) one can use the routines 47 ||= =||= **fully parallel &[[BR]]flexible parallel[[BR]]** =||= **flexible parallel[[BR]]** =|| 48 ||= local filters[[BR]](backward-compatibility) =|| [wiki:PDAF3_assimilate_local] || [wiki:PDAF3_put_state_local] || 49 50 To easier transition of programs with offline coupling to the PDAF3 interface (in combination with using `PDAF_set_offline_mode`) one can also use the routine 51 ||= Universal Routine for offline coupling[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] || 52 42 53 To enable an easier transition for existing PDAF2 implementations using the LEnKF to PDAF3, there is also the corresponding routine 43 ||= =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]] (backward-compatibility)** =||54 ||= =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]]** =|| 44 55 ||= Specific LEnKF routine[[BR]](backward compatibility) =|| [wiki:PDAF3_assimilate_lenkf] || [wiki:PDAF3_put_state_lenkf] || 45 56 … … 117 128 118 129 **For ensemble filters:** 119 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.1. 120 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_`. 130 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. 131 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].) 132 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_`. 121 133 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. 122 134 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) 123 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].124 135 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`. 125 136