wiki:PDAF_diag_CRPS_nompi

PDAF_diag_CRPS_nompi

This page documents the routine PDAF_diag_CRPS_nompi of PDAF, which was introduced with PDAF V2.2.1.

This routine computes the Continuous Ranked Probability Score (CRPS) and its decomposition into resolution and reliability. The CRPS provide information about the statistical consistency of the ensemble with the observations. In toy models, the CRPS can also be computed with regard to the true state. With parallelization, the computation is performed only for the observation ensemble oens provided as input argument. No parallel computations are performed.

Inputs are an array holding the observed ensemble and a corresponding vector of observations.

The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the CRPS.

The interface is:

  SUBROUTINE PDAF_diag_CRPS(dim, dim_ens, element, oens, obs, &
             CRPS, reli, resol, uncert, status)

  INTEGER, INTENT(in) :: dim                  ! state dimension
  INTEGER, INTENT(in) :: dim_ens              ! Ensemble size
  INTEGER, INTENT(in) :: element              ! ID of element to be used
       ! If element=0, mean values over all elements are computed
  REAL, INTENT(in)    :: oens(dim_p, dim_ens) ! State ensemble
  REAL, INTENT(in)    :: obs(dim_p)           ! State ensemble
  REAL, INTENT(out)   :: CRPS                 ! CRPS
  REAL, INTENT(out)   :: reli                 ! Reliability
  REAL, INTENT(out)   :: resol                ! resolution
  REAL, INTENT(out)   :: uncert               ! uncertainty
  INTEGER, INTENT(out) :: status              ! Status flag (0=success)

Hints:

  • using element one can select a since element of the observation vector for which the CRPS is computed (by multiple computations, it allows to computed a CRPS individually for each entry of the state vector). For element=0 the CRPS over all elements is computed
  • A perfectly reliable system gives reli=0. An informative system gives resol << uncert.
  • Compared to Hersbach (2000), resol here is equivalent to CPRS_pot.
  • The routine does not use any parallelization. For element=0 it computes the CRPS, reli, and resol for provided state vector. The routine can be used also when PDAF was not initialized by calling PDAF_init.
  • The routine uses a rather simple sorting algorithm. Accordingly, the performance is likely suboptimal for high-dimensional cases.
Last modified 4 days ago Last modified on Mar 26, 2025, 2:39:11 PM
Note: See TracWiki for help on using the wiki.