Changes between Version 9 and Version 10 of PDAF3_new_functionality
- Timestamp:
- May 15, 2025, 10:52:32 AM (7 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PDAF3_new_functionality
v9 v10 1 = New Functionality of PDAF 3 =1 = New Functionality of PDAF V3 = 2 2 3 3 [[PageOutline(2-3,Contents of this page)]] … … 7 7 === Incremental analysis updates (IAU) === 8 8 9 Incremental analysis updating (IAU) is used to av ail shocks in the model states due to the changes of the model state by the assimilation. PDAF V3contains new functionality to apply IAU.9 Incremental 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. 10 10 11 11 Further information: [wiki:IncrementalAnalysisUpdates Using IAU in PDAF]. … … 13 13 === New filters ENSRF and EAKF === 14 14 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.15 PDAF 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. 16 16 17 17 Further information: [wiki:ImplementAnalysisENSRF_EAKF Implementing the analysis step of the ENSRF & EAKF]. … … 25 25 * Compute root mean square difference between two vectors (PDAF_diag_rmsd) 26 26 * Compute statistical moments (mean, variance, skewness, kurtosis) (PDAF_diag_compute_moments) 27 * Ensemble reliability budget (PDAF_diag_reliability_budget) 27 28 28 29 Further information on all diagnostic routines: [wiki:DataAssimilationDiagnostics Data Assimilation Diagnostics]. … … 30 31 === PDAF-OMI observation diagnostics === 31 32 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.33 We 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. 33 34 34 35 Further information: [wiki:PDAFomi_observation_diagnostics PDAFomi observation diagnostics] … … 36 37 === New routines to set parameters for PDAF === 37 38 38 The routines `PDAF_set_iparam` and `PDAF_set_rparam` can be used to specify selected integer or real-value s parameters. They can be used in `init_pdaf` to set initial parameters as an alternative to specifythem in the call to `PDAF_init`. The routine can also be used during the assimilation process to modify parameters.39 The 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. 39 40 40 Further information: The tutorial examples, e.g. tutorial/offline_2D_serial/init_pdaf.F90show the implementation. Documentation is provided at [wiki:PDAF_set_iparam] and [wiki:PDAF_set_rparam].41 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]. 41 42 42 43 === New universal PDAF3 interface === … … 48 49 === Using `PDAF3_assimilate` in flexible parallelization mode === 49 50 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`.51 In 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`. 51 52 52 53 Further information: [wiki:ExternalModelLoop Modification of the model code for the 'flexible' ensemble integration]. 53 54 55 54 56 === Mandatory module `PDAF` for all use-included routines === 55 57 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.58 It 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. 57 59 58 60 Further information: [wiki:Module_PDAF Module PDAF] … … 60 62 === Covariance localization with `PDAF_set_localize_covar` === 61 63 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 ensemblethat the LEnKF can be called using the new universal PDAF3 interface.64 In 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. 63 65 64 66 Further information: [wiki:PDAFomi_set_localize_covar]. … … 66 68 === Initializing observations before `prepoststep_pdaf` === 67 69 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.70 In 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. 69 71 70 72 Further information: [wiki:AvailableOptionsforInitPDAFinPDAF3 Options for PDAF_init] and [wiki:PDAFomi_observation_diagnostics PDAFomi observation diagnostics] … … 72 74 === Calling the analysis step in offline coupling with `assim_offline` === 73 75 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.76 For 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. 75 77 76 78 Further information on the offline coupling: [wiki:OfflineImplementationGuide Implementation Guide for Offline Mode] … … 78 80 === Setting random number seed in PDAF === 79 81 80 The new routine `PDAF_set_seedset` provide d 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.82 The 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. 81 83 82 84 Further information: [wiki:PDAF_set_seedset]