== Development page == ''' Please only use the pages that are directly linked from the start page and within the Implementation Guide''' '''Pages linked here are under development'' [wiki:EGU_2023 EGU 2023] [wiki:MarDATA_DA_2024] ''' New for PDAF V2.3''' [wiki:OMI_nondiagonal_observation_error_covariance_matrices] [wiki:PDAFomi_observation_localization_weights] [wiki:PDAF_correlation_function] [wiki:OMI_search_local_observations] [wiki:PDAFomi_set_localization] [wiki:PDAFomi_set_localization_noniso] [wiki:PDAFomi_set_dim_obs_l] [wiki:PDAFomi_store_obs_l_index] [wiki:PDAFomi_store_obs_l_index_vdist] [wiki:PDAFomi_assimilate_3dvar_nondiagR] [wiki:PDAFomi_assimilate_en3dvar_estkf_nondiagR] [wiki:PDAFomi_assimilate_en3dvar_lestkf_nondiagR] [wiki:PDAFomi_assimilate_enkf_nondiagR] [wiki:PDAFomi_assimilate_global_nondiagR] [wiki:PDAFomi_assimilate_hyb3dvar_estkf_nondiagR] [wiki:PDAFomi_assimilate_hyb3dvar_lestkf_nondiagR] [wiki:PDAFomi_assimilate_lenkf_nondiagR] [wiki:PDAFomi_assimilate_lknetf_nondiagR] [wiki:PDAFomi_assimilate_lnetf_nondiagR] [wiki:PDAFomi_assimilate_local_nondiagR] [wiki:PDAFomi_assimilate_nonlin_nondiagR] [wiki:PDAFomi_assimilate_enkf_nondiagR_si.F90] [wiki:PDAFomi_assimilate_global_nondiagR_si.F90] [wiki:PDAFomi_assimilate_lenkf_nondiagR_si.F90] [wiki:PDAFomi_assimilate_lknetf_nondiagR_si.F90] [wiki:PDAFomi_assimilate_lnetf_nondiagR_si.F90] [wiki:PDAFomi_assimilate_local_nondiagR_si.F90] [wiki:PDAFomi_assimilate_nonlin_nondiagR_si.F90] [wiki:PDAFomi_put_state_3dvar_nondiagR] [wiki:PDAFomi_put_state_en3dvar_estkf_nondiagR] [wiki:PDAFomi_put_state_en3dvar_lestkf_nondiagR] [wiki:PDAFomi_put_state_enkf_nondiagR] [wiki:PDAFomi_put_state_global_nondiagR] [wiki:PDAFomi_put_state_hyb3dvar_estkf_nondiagR] [wiki:PDAFomi_put_state_hyb3dvar_lestkf_nondiagR] [wiki:PDAFomi_put_state_lenkf_nondiagR] [wiki:PDAFomi_put_state_lknetf_nondiagR] [wiki:PDAFomi_put_state_lnetf_nondiagR] [wiki:PDAFomi_put_state_local_nondiagR] [wiki:PDAFomi_put_state_nonlin_nondiagR] [wiki:PDAFomi_put_state_enkf_nondiagR_si] [wiki:PDAFomi_put_state_global_nondiagR_si] [wiki:PDAFomi_put_state_lenkf_nondiagR_si] [wiki:PDAFomi_put_state_lknetf_nondiagR_si] [wiki:PDAFomi_put_state_lnetf_nondiagR_si] [wiki:PDAFomi_put_state_local_nondiagR_si] [wiki:PDAFomi_put_state_nonlin_nondiagR_si] **PDAFlocal** [wiki:PDAFlocal_overview] [wiki:PDAFlocal_set_indices] [wiki:PDAFlocal_set_increment_weights] [wiki:PDAFlocal_clear_increment_weights] [wiki:PDAFlocal_assimilate_en3dvar_lestkf] [wiki:PDAFlocal_assimilate_hyb3dvar_lestkf] [wiki:PDAFlocal_assimilate_lestkf] [wiki:PDAFlocal_assimilate_lestkf_si] [wiki:PDAFlocal_assimilate_letkf] [wiki:PDAFlocal_assimilate_letkf_si] [wiki:PDAFlocal_assimilate_lknetf] [wiki:PDAFlocal_assimilate_lknetf_si] [wiki:PDAFlocal_assimilate_lnetf] [wiki:PDAFlocal_assimilate_lnetf_si] [wiki:PDAFlocal_assimilate_lseik] [wiki:PDAFlocal_assimilate_lseik_si] [wiki:PDAFlocal_put_state_en3dvar_lestkf] [wiki:PDAFlocal_put_state_hyb3dvar_lestkf] [wiki:PDAFlocal_put_state_lestkf] [wiki:PDAFlocal_put_state_lestkf_si] [wiki:PDAFlocal_put_state_letkf] [wiki:PDAFlocal_put_state_letkf_si] [wiki:PDAFlocal_put_state_lknetf] [wiki:PDAFlocal_put_state_lknetf_si] [wiki:PDAFlocal_put_state_lnetf] [wiki:PDAFlocal_put_state_lnetf_si] [wiki:PDAFlocal_put_state_lseik] [wiki:PDAFlocal_put_state_lseik_si] [wiki:PDAFlocalomi_assimilate] [wiki:PDAFlocalomi_assimilate_en3dvar_lestkf] [wiki:PDAFlocalomi_assimilate_hyb3dvar_lestkf] [wiki:PDAFlocalomi_assimilate_en3dvar_lestkf_nondiagR] [wiki:PDAFlocalomi_assimilate_hyb3dvar_lestkf_nondiagR] [wiki:PDAFlocalomi_assimilate_lknetf_nondiagR] [wiki:PDAFlocalomi_assimilate_lnetf_nondiagR] [wiki:PDAFlocalomi_assimilate_nondiagR] [wiki:PDAFlocalomi_put_state] [wiki:PDAFlocalomi_put_state_en3dvar_lestkf] [wiki:PDAFlocalomi_put_state_hyb3dvar_lestkf] [wiki:PDAFlocalomi_put_state_en3dvar_lestkf_nondiagR] [wiki:PDAFlocalomi_put_state_hyb3dvar_lestkf_nondiagR] [wiki:PDAFlocalomi_put_state_lknetf_nondiagR] [wiki:PDAFlocalomi_put_state_lnetf_nondiagR] [wiki:PDAFlocalomi_put_state_nondiagR] [wiki:PDAF_diag_crps_mpi] == Version 2.3 - XXX, 2024 == Major Changes and additions: * Performance improvements to ''PDAFomi_init_dim_obs_l''. While we already improve the performance in V2.2.1 we found that by further restructuring of the code the performance could be further improved. (In some cases with gfortran and ifort compilers by a factor of 6 to 9.) The previous routine is still present as PDAFomi_init_dim_obs_l_old. * For even better performance of the initialization of local observations, we added ''support for a user-sided implementation of search for local observations''. The user-sided search routine can lead to the best performance since it requires less IF-checks which are required in the generic code inside PDAFomi. If you have the impression that PDAFomi_init_dim_obs_l is slow in your case, e.g. because it domines the run time of the analysis step, we recommend to aim for a user-sided implementation (see https://pdaf.awi.de/trac/wiki/OMI_search_local_observations) * Addition of ''support for non-diagonal observation error covariance matrices in PDAF-OMI'' (see https://pdaf.awi.de/trac/wiki/OMI_nondiagonal_observation_error_covariance_matrices) * ''Introduction of PDAFlocal interface''. This simplifies the implementation of the state localization. It also provides support for weighted local increments, e.g. to implement vertical localization or weakly coupled assimilation. (see https://pdaf.awi.de/trac/wiki/PDAFlocal_overview) Further changes and additions: * Improved ''parser_mpi.F90'': Now parsing a slash '/' is possible. This now also allows to parse directory paths. In addition, for string parsing it is checked if the string is truncated upon parsing. * Update of ''PDAF_diag_crps'': The routine now includes parallelization. There is a separate routine ''PDAF_diag_crps_mpi'' which allows one to specify the communicator in which the operation is performed. * New ''Makefile'' in PDAF root directory. This makefile performs the compilation in the directory build/ and keeps src/ clear. Further, it supports parallel compilation. The previous Makefile in src/ is still present, but will be removed in a future release. If you integrated the compilation of PDAF in some larger build process, we recommend to switch to the new Makefile. * New routine ''PDAFomi_observation_localization_weights'' as convenient way to get a localization weight. Usable for example in the prodRinvA or likelihood routines for non-diagonal R. * New routine ''PDAF_correlation_function'' to provide the value of correlation functions. Currently, a Gaussian and the 5th-order polynomial by Gaspari&Cohn (1999) are implemented. * Revised timer module: Now MPI_Wtime is used instead of SYSTEM_CLOCK. This appears to yield more consistent timings Bug fixes: * Replace lower-case letters by upper case in TRTRS library calls. This circumvents a bug in some versions of OPENBLAS, which causes OPENBLAS to only accept upper case letters for this call. * Revision of ETKF/ESTKF/SEIK analysis step. For domains with dim_obs_p=0 now the observation operator is called consistently with domains having dim_obs_p>0. This allows for global MPI operations in the observation operator routine.