wiki:LnDevel

Version 163 (modified by lnerger, 9 months ago) (diff)

--

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

NEW for 1.20

PDAF_assimilate_lenkf

PDAF_assimilate_lenkf_si

PDAF_put_state_lenkf

PDAF_put_state_lenkf_si

PDAF_reset_forget

PDAF_force_analysis

PDAF_set_memberid

PDAFomi_assimilate_local

PDAFomi_assimilate_global

PDAFomi_assimilate_lenkf

PDAFomi_assimilate_local_si

PDAFomi_assimilate_global_si

PDAFomi_assimilate_lenkf_si

PDAFomi_put_state_local

PDAFomi_put_state_global

PDAFomi_put_state_lenkf

PDAFomi_put_state_local_si

PDAFomi_put_state_global_si

PDAFomi_put_state_lenkf_si

ImplementAnalysis_3DVar

PDAF_set_comm_pdaf

ImplementFilterAnalysisOverview

Implement3DVarAnalysisOverview

Version 2.0 - December XXXXX, 2021

Changes:

  • Added 3D-Var methods
    • 5 variants: 3D-Var with parameterized covariances, 3D ensemble var (ensemble covariances) and hybrid-var (combined parameterized and ensemble covariances); ensemble perturbations can be transformed using the global ESTKF or the local LESTKF
    • Added tutorials for 3D-Var methods (codes and slide set with explanations)
    • Added template files for 3D-Var methods
  • Added models from Lorenz (2005): model II (state with averaging), model III (two-scale); both with assimilation fully implemented
  • Added tutoral code showing a multivariate implementation with two model fields (/tutorial/online_2D_serialmodel_2fields). The tutorial demonstrates an efficient way to handle multiple model fields
  • Added possibility to reset the MPI world communicator in which PDAF operates (routine PDAF_set_comm_pdaf). This ensures compatibility with e.g. OI-servers that use processes separate from those used by the model integration.
  • Added possibility to let the user force that the analysis step is computed at the next call to PDAF_assimilate/PDAF_put_state (routine PDAF_force_analysis)
  • Added possibility to overwrite PDAF's ensemble member counting in the flexible parallelization variant and force execution of the analysis (PDAF_set_memberid)
  • Added routine to reset the value of the forgetting factor. Can be applied during the analysis step, e.g. to give each local analysis domain a different inflation value (PDAF_reset_forget)
  • Added diagnostic routine to compute the continuous ranked probability score, CRPS (PDAF_diag_crps)
  • Code revisions:
    • modernized use of MPI: now we use 'USE MPI' instead of 'include mpif.h'. This solves the issue of gfortran 10, which claimed argument mismatches
    • modernized use of netCDF (with 'use netcdf' instead of 'include netcdf.inc'). This also resolves the issue of gfortran 10
    • observation generation (GENOBS) moved to filtertype=100
    • PDAF_sampleens now works without prior call to PDAF_init (removed memory counting)
    • removed stub PDAF library since it is not compatible with 'USE mpi'. Thus, compiling PDAF now requires a MPI library to be installed
  • PDAF-OMI related
    • Calling deallocate_obs_pdafomi is no longer required
    • Model bindings for MITgcm and AWI-CM revised for using PDAF-OMI
    • all model implementations (Lorenz models) now implemented using PDAF-OMI
    • Added OMI adjoint observation operators for use with 3D-Var methods
  • Bug corrections:
    • Correction of initialization of gcoords in tutorial for obs_C_pdafomi (observations with linear interpolation)
    • For compatibility with the Cray compiler, all .mod files of the PDAF library are copied to /include
    • resolved issue of gfortran-10 complaining about argument mismatch by 'USE mpi'