Changes between Version 14 and Version 15 of PDAF3_interface


Ignore:
Timestamp:
May 30, 2025, 6:49:41 PM (41 hours ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF3_interface

    v14 v15  
    2929||= =||= online coupled =||= offline coupled =||
    3030||= Universal Routine [[BR]]for all filters =|| [wiki:PDAF3_assimilate] || [wiki:PDAF3_assim_offline] ||
    31 For the online-coupled case, `PDAF3_assimilate` can be used for both the fully parallel and flexible parallization variants.
     31For the online-coupled case, `PDAF3_assimilate` can be used for both the fully parallel and flexible parallization variants. (This routine is the counterpart for `PDAFlocalomi_assimilate` of PDAF2.)
    3232
    3333**Routines for particular cases**
    3434
    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
    36 ||=  =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]](backward-compatibility)** =||
    37 ||= global filters[[BR]]& LEnKF =|| [wiki:PDAF3_assimilate_global] || [wiki:PDAF3_put_state_global] ||
     35The universal routines specify in their interface three routines related to localization. These are only executed for local filters. For the particular case, that one only uses global filters or the LEnKF one can use one of the routines
     36||=  =||= online coupled =||= offline coupled =||
     37||= global filters[[BR]]& LEnKF =|| [wiki:PDAF3_assimilate_global] || [wiki:PDAF3_assim_offline_global] ||
    3838
    3939**Routines for backward-compatibility with PDAF-2**
     
    4343|| Note: While the routines for backward-compatibility help to transition to the PDAF3 interface, we recommend to use them only as a first step before porting to the universal PDAF3 interface routines. ||
    4444
    45 For easier transition of the flexible parallelization mode to the PDAF3 interface, one can use the routine
     45For easier transition of implementations that use local filters without PDAFlocal (thus usually `PDAFomi_assimilate_local`) one can use the routines
     46
     47||=  =||= online coupled =||= offline coupled =||
     48||= global filters[[BR]]& LEnKF =|| [wiki:PDAF3_assimilate_local] || [wiki:PDAF3_assim_offline_local][[BR]] ||
     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 routines
     51||= Universal Routine for offline coupling[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] ||
     52||= Universal Routine for offline coupling not using PDAFlocal[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state_local] ||
     53||=  Routine for offline coupling for global filters[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state_global] ||
     54
     55For easier transition of the flexible parallelization mode to the PDAF3 interface, one can use the routines
    4656||= Universal Routine for flexible parallel[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] ||
    47 
    48 For easier transition of implementations that use local filters without PDAFlocal (thus usually `PDAFomi_assimilate_local`) one can use the routines
    49 ||=  =||= **fully parallel &[[BR]]flexible parallel[[BR]]** =||= **flexible parallel[[BR]]** =||
    50 ||= local filters[[BR]](backward-compatibility) =|| [wiki:PDAF3_assimilate_local] || [wiki:PDAF3_put_state_local] ||
    51 
    52 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
    53 ||= Universal Routine for offline coupling[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state] ||
     57||= Routine for local filters for flexible parallel[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state_local] ||
     58||= Routine for global filters for flexible parallel[[BR]](backward compatibility) =|| [wiki:PDAF3_put_state_global] ||
    5459
    5560To enable an easier transition for existing PDAF2 implementations using the LEnKF to PDAF3, there is also the corresponding routine
    56 ||=  =||= **fully parallel &[[BR]]flexible parallel** =||= **flexible parallel[[BR]]** =||
    57 ||= Specific LEnKF routine[[BR]](backward compatibility) =|| [wiki:PDAF3_assimilate_lenkf] || [wiki:PDAF3_put_state_lenkf] ||
     61||=  =||= **fully parallel &[[BR]]flexible parallel** =||
     62||= Specific LEnKF routine[[BR]](backward compatibility) =|| [wiki:PDAF3_assimilate_lenkf] ||
    5863
    5964There is analogously the routine [wiki:PDAF3_put_state_lenkf]. However, using the new routine [wiki:PDAFomi_set_localize_covar] in `init_dim_obs_pdafomi` in each observation module one can switch to using the new universal routine.
    6065
    6166**Notes:**
    62  * The 'put_state' routines exist for backward-compatibility of the flexible parallelization variant. Starting with PDAF V3.0, we recommend to use `PDAF3_assimilate` also for the  flexible parallelization variant. See the [wiki:ExternalModelLoop instructions for implementing the flexible parallelization variant] for the updated instructions.
     67 * The 'put_state' routines exist for backward-compatibility of the flexible parallelization variant. Starting with PDAF V3.0, we recommend to use `PDAF3_assimilate` also for the  flexible parallelization variant. See the [wiki:OnlineFlexible_PDAF3 instructions for implementing the flexible parallelization variant] for the updated instructions.
    6368 * One can let PDAF select which of the routines to call. The function [wiki:PDAF_localfilter] allows to select `PDAF3_assimilate_global` for global filters (`PDAF_localfilter()=0`).
    6469
     
    7075
    7176||= **Method** =||= online coupled =||= offline coupled =||
    72 ||= 3D-Var (parameterized) =|| [wiki:PDAF3_assimilate_3dvar] || [wiki:PDAF3_put_state_3dvar] ||
    73 ||= En3D-Var with ESTKF or LESTKF=|| [wiki:PDAF3_assimilate_en3dvar] || [wiki:PDAF3_put_state_en3dvar] ||
    74 ||= hyb3D-Var with ESTKF or LESTKF =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_put_state_3dvar_all] ||
    75 ||= Universal Routine [[BR]](all 3D-Var methods) =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_put_state_3dvar_all] ||
     77||= 3D-Var (parameterized) =|| [wiki:PDAF3_assimilate_3dvar] || [wiki:PDAF3_assim_offline_3dvar] ||
     78||= En3D-Var with ESTKF or LESTKF=|| [wiki:PDAF3_assimilate_en3dvar] || [wiki:PDAF3_assim_offline_en3dvar] ||
     79||= hyb3D-Var with ESTKF or LESTKF =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_assim_offline_3dvar_all] ||
     80||= Universal Routine [[BR]](all 3D-Var methods) =|| [wiki:PDAF3_assimilate_3dvar_all] || [wiki:PDAF3_assim_offline_3dvar_all] ||
     81
    7682
    7783**Note:**
     
    8793
    8894||= **Method** =||= online coupled =||= offline coupled =||
    89 ||= En3DVar with ESTKF=|| [wiki:PDAF3_assimilate_en3dvar_estkf] || [wiki:PDAF3_put_state_en3dvar_estkf] ||
    90 ||= Hyb3DVar with ESTKF =|| [wiki:PDAF3_assimilate_hyb3dvar_estkf] || [wiki:PDAF3_put_state_hyb3dvar_estkf] ||
     95||= En3DVar with ESTKF=|| [wiki:PDAF3_assimilate_en3dvar_estkf] || [wiki:PDAF3_assim_offline_en3dvar_estkf] ||
     96||= Hyb3DVar with ESTKF =|| [wiki:PDAF3_assimilate_hyb3dvar_estkf] || [wiki:PDAF3_assim_offline_hyb3dvar_estkf] ||
    9197
    9298