Changes between Version 9 and Version 10 of PDAF3_new_functionality


Ignore:
Timestamp:
May 15, 2025, 10:52:32 AM (7 weeks ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF3_new_functionality

    v9 v10  
    1 = New Functionality of PDAF3 =
     1= New Functionality of PDAF V3 =
    22
    33[[PageOutline(2-3,Contents of this page)]]
     
    77=== Incremental analysis updates (IAU) ===
    88
    9 Incremental analysis updating (IAU) is used to avail shocks in the model states due to the changes of the model state by the assimilation. PDAF V3 contains new functionality to apply IAU.
     9Incremental analysis updating (IAU) is used to avoid shocks in the model states due to the changes of the model state by the assimilation. PDAF V3.0 contains new functionality to apply IAU.
    1010
    1111Further information: [wiki:IncrementalAnalysisUpdates Using IAU in PDAF].
     
    1313=== New filters ENSRF and EAKF ===
    1414
    15 PDAF V3 includes the ensemble quare root filter (ENSRF, Whitaker and Hamill, 2002) and the Ensemble Adjustment Filter (EAKF, Anderson, 2003). These filters use serial processing of single observations, which is computationally very efficient. The filters are implemented as different subtypes of what is called ENSRF in PDAF. Both filters can apply covariance localization.
     15PDAF V3 includes the ensemble square root filter (ENSRF, Whitaker and Hamill, 2002) and the Ensemble Adjustment Filter (EAKF, Anderson, 2003). These filters use serial processing of single observations, which is computationally very efficient. The filters are implemented as different subtypes of what is called ENSRF in PDAF. Both filters can apply covariance localization.
    1616
    1717Further information: [wiki:ImplementAnalysisENSRF_EAKF Implementing the analysis step of the ENSRF & EAKF].
     
    2525 * Compute root mean square difference between two vectors (PDAF_diag_rmsd)
    2626 * Compute statistical moments (mean, variance, skewness, kurtosis) (PDAF_diag_compute_moments)
     27 * Ensemble reliability budget (PDAF_diag_reliability_budget)
    2728
    2829Further information on all diagnostic routines: [wiki:DataAssimilationDiagnostics Data Assimilation Diagnostics].
     
    3031=== PDAF-OMI observation diagnostics ===
    3132
    32 We added a module for observation diagnostics to PDAF-OMI. With this, there are routines that provide the user-code - usually prepoststep - direct access to the observation information (observation vector, observed ensemble, observed ensmeble mean, observation coordinates, observation error variance). There are also routines that compute statistics between the observation vector and the observation ensemble mean for example for the root mean square difference, correlation, bias, and mean absolute error). The statistics can be used to e.g. plot a Taylor diagram.
     33We added a module for observation diagnostics in PDAF-OMI. With this, there are routines that provide the user-code - usually prepoststep - direct access to the observation information (observation vector, observed ensemble, observed ensemble mean, observation coordinates, observation error variances). There are also routines that compute statistics between the observation vector and the observed ensemble mean for example, for the root mean square difference, correlation, bias, and mean absolute error. The statistics can be used, e.g., to plot a Taylor diagram.
    3334
    3435Further information: [wiki:PDAFomi_observation_diagnostics PDAFomi observation diagnostics]
     
    3637=== New routines to set parameters for PDAF ===
    3738
    38 The routines `PDAF_set_iparam` and `PDAF_set_rparam` can be used to specify selected integer or real-values parameters. They can be used in `init_pdaf` to set initial parameters as an alternative to specify them in the call to `PDAF_init`. The routine can also be used during the assimilation process to modify parameters.
     39The routines `PDAF_set_iparam` and `PDAF_set_rparam` can be used to specify selected integer or real-valued parameters. They can be used in `init_pdaf` to set initial parameters as an alternative to specifying them in the call to `PDAF_init`. The routine can also be used during the assimilation process to modify parameters.
    3940
    40 Further information: The tutorial examples, e.g. tutorial/offline_2D_serial/init_pdaf.F90 show the implementation. Documentation is provided at [wiki:PDAF_set_iparam] and [wiki:PDAF_set_rparam].
     41Further information: The tutorial examples, e.g. `tutorial/offline_2D_serial/init_pdaf.F90` show the implementation. Documentation is provided at [wiki:PDAF_set_iparam] and [wiki:PDAF_set_rparam].
    4142
    4243=== New universal PDAF3 interface ===
     
    4849=== Using `PDAF3_assimilate` in flexible parallelization mode ===
    4950
    50 In the flexible parallelization mode of PDAF, one had to use `PDAF_put_state`. With PDAF V3 it is possible, and recommended to use `PDAF_assimilate` instead. This functionality is used in combination with calling `PDAF_get_fcst_info`.
     51In the flexible parallelization mode of previous PDAF versions, one had to use `PDAF_put_state` for the flexible parallelization mode. With PDAF V3 it is possible, and recommended, to use `PDAF3_assimilate` instead. This functionality is used in combination with calling the new routine `PDAF_get_fcst_info`.
    5152
    5253Further information: [wiki:ExternalModelLoop Modification of the model code for the 'flexible' ensemble integration].
    5354
     55
    5456=== Mandatory module `PDAF` for all use-included routines ===
    5557
    56 When PDAF routines are called it is now required to include `USE PDAF` in the respective subroutine. The module `PDAF` is also recommend to be used to include routines from PDAFomi or PDAFlocal. One does no longer need to distingish the modules, e.g. in the observation modules for PDAF-OMI.
     58It is now required to include `USE PDAF` in the  subroutines that call PDAF routines. The module `PDAF` is also recommend to be used to include routines from PDAFomi or PDAFlocal, e.g. in the observation modules and in `init_dim_l_pdaf`. One does no longer need to distingish the modules, but can use `PDAF` universally.
    5759
    5860Further information: [wiki:Module_PDAF Module PDAF]
     
    6062=== Covariance localization with `PDAF_set_localize_covar` ===
    6163
    62 In PDAF2 the localization in the LEnKF required an additional routine localize_covar_pdafomi in each OMI obsevation module. With PDAF V3 one can instead use `PDAF_set_localize_covar`. This routine is called in the observation initialization routine. It is used for the LEnKF and also the ENSRF/EAKF methods. Using this routine also ensemble that the LEnKF can be called using the new universal PDAF3 interface.
     64In PDAF2 using PDAF-OMI, the localization in the LEnKF required an additional call-back routine `localize_covar_pdafomi` and a coresponding routine in each OMI observation module. With PDAF V3 it is recommended to  use `PDAF_set_localize_covar` instead. This routine is called in the observation initialization routine `init_dim_obs_pdafomi` of each observation module. The routine is used for the LEnKF and also the ENSRF/EAKF methods. Using this routine also enables that the LEnKF can be called using the new universal PDAF3 interface.
    6365
    6466Further information: [wiki:PDAFomi_set_localize_covar].
     
    6668=== Initializing observations before `prepoststep_pdaf` ===
    6769
    68 In PDAF V3 one can choose to initialize observations after an analysis phase before the routine prepoststep_pdaf is called. This is set using the integer parameter with index 9 (see [wiki:AvailableOptionsforInitPDAFinPDAF3 Options for PDAF_init]). This option allows the code to assess observation information in prepostep_pdaf to compute the forecast ensemble with the observations that will be assimilated in the following analysis step.
     70In PDAF V3, one can choose to initialize observations after an forecast phase before the routine prepoststep_pdaf is called. This is set using the integer parameter with index 9 (see [wiki:AvailableOptionsforInitPDAFinPDAF3 Options for PDAF_init]). This option allows the to assess observation information in `prepostep_pdaf` to compare the forecast ensemble with the observations that will be assimilated in the following analysis step, e.g. using the new PDAFomi observation diagnostics.
    6971
    7072Further information: [wiki:AvailableOptionsforInitPDAFinPDAF3 Options for PDAF_init] and [wiki:PDAFomi_observation_diagnostics PDAFomi observation diagnostics]
     
    7274=== Calling the analysis step in offline coupling with `assim_offline` ===
    7375
    74 For the offline coupled mode in PDAF2, one used `put_state` in combination with `PDAF_set_offline_mode`, which switched off the ensemble integration functionlity. In PDAF3, there are now `assim_offline` routines, e.g. `PDAF3_assim_offline`, which cab be directly called after the PDAF initialization. This simplifies the code for the offline mode.
     76For the offline coupled mode in PDAF2, one used `PDAF_put_state` routines in combination with `PDAF_set_offline_mode`, which switched off the ensemble integration functionlity (in older code version one used `subtype=5`). In PDAF3, there are now `PDAF_assim_offline` routines, e.g. `PDAF3_assim_offline`, which can be directly called after the PDAF initialization. This simplifies the code for the offline mode, since only a call to `PDAF_init` followed by `PDAF3_assim_offline` are required.
    7577
    7678Further information on the offline coupling: [wiki:OfflineImplementationGuide Implementation Guide for Offline Mode]
     
    7880=== Setting random number seed in PDAF ===
    7981
    80 The new routine `PDAF_set_seedset` provided the possibility to select a set of random number seeds (out of 20 choices). This allows to perform, e.g. sensitivity tests by rerunning a dta assimilation case with different random numbers.
     82The new routine `PDAF_set_seedset` provides the possibility to select a set of random number seeds (out of 20 choices). This allows to perform, e.g., sensitivity tests by rerunning a data assimilation case with different random numbers.
    8183
    8284Further information: [wiki:PDAF_set_seedset]