Changes between Version 255 and Version 256 of LnDevel


Ignore:
Timestamp:
Mar 27, 2025, 8:06:05 PM (5 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LnDevel

    v255 v256  
    176176This is a major release. The whole PDAF code was revised and modernized.
    177177
    178 Important: Due to changes in the code, PDAF V3.0 is not fully backward compatible. Thus, with this release it is not possible to just compile and link with existing implementations. The required adaptions are no large. Please see ..... for a description of how to port your existing code to PDAF V3.0
    179 
    180 We have marked this release as a beta-release. While we have tested this release with different applications, we cannot exclude that there might be some hidden issue due to the extensive changes in the code. We like to motivate all users to test PDAF V3.0 and to report possible issues to use (using the Issues in Github or by email at pdaf\@awi.de). This will help us to fix such issues so that the final release for PDAF V3.0 can hopefull ussor in 2-3 months. During this time, we will also finalize the documentation to reflect all changes.
     178Important:
     1791. PDAF V3.0 is not fully backward compatible, due to changes in the code. Thus, with this release it is not possible to just compile and link with existing implementations. The required adaptions are not large. Please see ..... for a description of how to port your existing code to PDAF V3.0. Below the code changes affecting backward-compatibility are also described.
     180
     1812. We have marked this release as a beta-release. While we have tested this release with different applications, we cannot exclude that there might be some hidden issues due to the extensive changes in the code. We like to motivate all users to test PDAF V3.0 and to let us know possible issues (using the Issues-function in Github or by email to pdaf\@awi.de). This will help us to fix such issues so that the final release for PDAF V3.0 can hopefully be released in 2-3 months. During this time, we will also finalize the documentation to reflect all changes.
    181182
    182183Major changes with effect on backward-compatibility
     
    190191
    191192Major changes and additions:
     193* Incremental Analysis Updates (IAU): The previous IAU of PDAF was recoded. Now a fully featured IAU is supported.
     194* Added ENSRF/EAKF: The ensemble square-root filter (ENSRF, Whitaker & Hamill, 2002) and ensemble adjustment filter with local linear regression (EAKF, Anderson, 2003) were added. These filters perform the analysis step with a serial processing of single observations.
     195* Added more diagnostic routines, e.g. for computing ensemble mean (PDAF_diag_ensmean), ensemble mean standard deviation (PDAF_diag_stdev), variance state vector (PDAF_diag_variance) and higher order moments (PDAF_diag_compute_moments).
     196* Added observation diagnostics module for OMI: This is a set of routines that give the user access to the observation information including the observed ensemble and the observed ensemble mean. In addition, there are routines computing statistics for the difference beetween the observations and the observed ensemble mean.
     197* Revised setting parameters for PDAF: Before the parameters were all set in the call to PDAF_init. Now there are new routines PDAF_set_iparam and PDAF_set_rparam to set selected parameters, without the need to specify all parameters. These routines make the specification of parameters for PDAF more flexible and can also be used during a run to change parameter values.
    192198* Revision of the initialization of observations: Now the observations are initialized before the actual analysis step is computed. Also the observartion operator is called before the actual analysis step. This also allows the option to initialize observations before prepoststep_pdaf is called for the forecast ensemble. Related to this the screen output for the observations was revised and is displayed at a different location from before
    193 * New PDAF3 interface: The selection of possible calls to PDAF*_put_state and PDAF*_assimilate has grown over the years. We introduced a new interface PDAF3_assimilate_X and PDAF3_put_state_X, which uses the latesd features that were introduced in previous PDAF releases and allows for a minimum number of arguments. The previous routines still exist, but we recommend to change to the new routines.
     199* New PDAF3 interface: The selection of possible calls to PDAF*_put_state and PDAF*_assimilate has grown over the years since new functionality, in particular PDAF-OMI and PDAFlocal, required a new interfaces. We now defined a new standard interface PDAF3_assimilate_X and PDAF3_put_state_X, which uses the latest features that were introduced in previous PDAF releases and allow for a minimum number of arguments. The previous routines still exist, but we recommend to change to the new routines.
    194200* New routine PDAF_get_fcst_info: This routine allows to retrieve the return values of PDAF_get_state (nsteps, time, doexit) for the case that PDAF_assimilate routines, which do not return these values, are used.
    195201* Change for flexible parallelization variant: For this variant it is now possible to use PDAF_assimilate routines, while PDAF_put_state routines had to be called before. Using PDAF_assimilate in combination with 'PDAF_get_fcst_info' is the recommend choice for PDAF V3. Since PDAF_assimilate routines are called at each time step during the forecast phase this allows to easy use of the IAU functionality.
    196 * Added observation diagnostics module for OMI: This is a set of routines that give the user access to the observation information including the observed ensemble and the observed ensemble mean. In addition, there are routines computing statistics for the difference beetween the observations and the observed ensemble mean.
    197202* New routine PDAFomi_set_localize_covar: This routine is called in the OMI observation module in init_dim_obs_pdafomi. It sets the information for localization in the LEnKF and ENSRF/EAKF methods. (optional for LEnKF)
    198203* Calling LEnKF with the common routine PDAF3_assimilate_global: In PDAF 2.3 and before, the LEnKF had its own interface due to the additional call-back routine localize_covar_pdafomi required by this filter. With the new routine PDAFomi_set_localize_covar that is called in the OMI observation module in init_dim_obs_pdafomi the additional user-supplied subroutine localize_covar_pdafomi is no longer required which lowers the amount of implementation work for the user.
    199 * Incremental Analysis Updates (IAU): The previous IAU of PDAF was recoded. Now a fully featured IAU is supported.
    200 * ENSRF/EAKF: The ensemble square-root filter (ENSRF, Whitaker & Hamill, 2002) and ensemble adjustment filter with local linear regression (EAKF, Anderson, 2003) were added. These filters perform the analysis step with a serial processing of single observations.
    201 * Added more diagnostic routines, e.g. for computing ensemble mean (PDAF_diag_ensmean), ensemble mean standard deviation (PDAF_diag_stdev), variance state vector (PDAF_diag_variance) and higher order moments (PDAF_diag_compute_moments).
    202 * Revised setting parameters for PDAF: Before the parameters were all set in the call to PDAF_init. Now there are new routines PDAF_set_iparam and PDAF_set_rparam to set selected parameters. These make the specification of parameters for PDAF for flexible and can also be used during a run to change parameter values.
    203204* New routine `PDAF_set_seedset`: This routine can be used to seed the randum number seed for genering observations
    204205* Introduced named variables for choosing the filter type: The filter type can now also be specified by a named parameter of the form PDAF_DA_X, where 'X' is the DA method, e.g. 'ESTKF' or '3DVAR'. With this one does not need to look up the number of the filter type.