Changes between Initial Version and Version 1 of PDAF_diag_CRPS_nompi


Ignore:
Timestamp:
Mar 26, 2025, 2:39:11 PM (6 days ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PDAF_diag_CRPS_nompi

    v1 v1  
     1= PDAF_diag_CRPS_nompi =
     2
     3
     4This page documents the routine `PDAF_diag_CRPS_nompi` of PDAF, which was introduced with PDAF V2.2.1.
     5
     6This 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.
     7
     8Inputs are an array holding the observed ensemble and a corresponding vector of observations.
     9
     10The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the CRPS.
     11
     12The interface is:
     13{{{
     14  SUBROUTINE PDAF_diag_CRPS(dim, dim_ens, element, oens, obs, &
     15             CRPS, reli, resol, uncert, status)
     16
     17  INTEGER, INTENT(in) :: dim                  ! state dimension
     18  INTEGER, INTENT(in) :: dim_ens              ! Ensemble size
     19  INTEGER, INTENT(in) :: element              ! ID of element to be used
     20       ! If element=0, mean values over all elements are computed
     21  REAL, INTENT(in)    :: oens(dim_p, dim_ens) ! State ensemble
     22  REAL, INTENT(in)    :: obs(dim_p)           ! State ensemble
     23  REAL, INTENT(out)   :: CRPS                 ! CRPS
     24  REAL, INTENT(out)   :: reli                 ! Reliability
     25  REAL, INTENT(out)   :: resol                ! resolution
     26  REAL, INTENT(out)   :: uncert               ! uncertainty
     27  INTEGER, INTENT(out) :: status              ! Status flag (0=success)
     28}}}
     29
     30Hints:
     31 * 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
     32 * A perfectly reliable system gives `reli=0`. An informative system gives `resol << uncert`.
     33 * Compared to Hersbach (2000), `resol` here is equivalent to `CPRS_pot`.
     34 * 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`.
     35 * The routine uses a rather simple sorting algorithm. Accordingly, the performance is likely suboptimal for high-dimensional cases.
     36