Changes between Version 10 and Version 11 of PDAF3_interface


Ignore:
Timestamp:
Apr 21, 2025, 12:06:30 PM (7 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF3_interface

    v10 v11  
    2828
    2929||= =||= 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] ||
    3131For the online-coupled case, `PDAF3_assimilate` can be used for both the fully parallel and flexible parallization variants.
    3232
    3333**Routines for particular cases**
    3434
    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
     35The 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
    3936||=  =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]](backward-compatibility)** =||
    4037||= global filters[[BR]]& LEnKF =|| [wiki:PDAF3_assimilate_global] || [wiki:PDAF3_put_state_global] ||
    4138
     39**Routines for backward-compatibility with PDAF-2**
     40
     41To enable an easier transition for existing PDAF2 implementations to the PDAF3 interface, there are a set of routines.
     42
     43For 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
     46For 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
     50To 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
    4253To 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]]** =||
    4455||= Specific LEnKF routine[[BR]](backward compatibility) =|| [wiki:PDAF3_assimilate_lenkf] || [wiki:PDAF3_put_state_lenkf] ||
    4556
     
    117128
    118129**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_`.
     1301. 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.
     1311. 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].)
     1321. 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_`.
    1211331. 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.
    1221341. 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].
    1241351. 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`.
    125136