Changes between Version 3 and Version 4 of PDAF_diag_variance
- Timestamp:
- Mar 26, 2025, 2:23:48 PM (6 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PDAF_diag_variance
v3 v4 3 3 This page documents the routine `PDAF_diag_variance` of PDAF, which was introduced with PDAF V3.0. 4 4 5 This routine computes the unbiased variance of the ensemble and returns it in the form of a state vector. In addition the mean standard deviation is computed.taking into account domain-decomposition for parallelized models.5 This routine computes the unbiased variance of the ensemble and returns it in the form of a state vector. In addition, the mean standard deviation is computed taking into account domain-decomposition for parallelized models. 6 6 7 The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the ensemble statistics. This variant computes the standard deviation for the provided ensemble over the full decomposed domain of a parallel model . The variant without parallelization is [wiki:PDAF_diag_variance_nompi].7 The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the ensemble statistics. This variant computes the standard deviation for the provided ensemble over the full decomposed domain of a parallel model specified by `COMM_filter`. The variant without parallelization is [wiki:PDAF_diag_variance_nompi]. 8 8 9 The interface is the following:9 The interface is: 10 10 {{{ 11 11 SUBROUTINE PDAF_diag_variance(dim_p, dim_ens, state_p, ens_p, variance_p, & 12 12 stddev_g, do_mean, do_stddev, COMM_filter, status) 13 }}} 14 with the following arguments: 15 {{{ 16 INTEGER, INTENT(in) :: dim_p !< state dimension17 INTEGER, INTENT(in) :: dim_ens !< Ensemble size18 REAL, INTENT( inout) :: state_p(dim_p) !< State vector19 REAL, INTENT( in) :: ens_p(dim_p, dim_ens) !< Stateensemble20 REAL, INTENT(out) :: variance_p(dim_p) !< Variance state vector21 REAL, INTENT(out) :: stddev_g !< Global standard deviation of ensemble22 INTEGER, INTENT(in) :: do_ mean !< 1 to compute ensemble mean; 0 take values froem state_p as ensemble mean23 INTEGER, INTENT(in) :: do_stddev !< 1 to compute the ensemble mean standard deviation;0 no computation of ensemble standard deviation24 INTEGER, INTENT(in) :: COMM_filter ! <Filter communicator25 INTEGER, INTENT(out) :: status ! <Status flag (0=success)13 14 INTEGER, INTENT(in) :: dim_p ! state dimension 15 INTEGER, INTENT(in) :: dim_ens ! Ensemble size 16 REAL, INTENT(inout) :: state_p(dim_p) ! State vector 17 REAL, INTENT(in) :: ens_p(dim_p, dim_ens) ! State ensemble 18 REAL, INTENT(out) :: variance_p(dim_p) ! Variance state vector 19 REAL, INTENT(out) :: stddev_g ! Global standard deviation of ensemble 20 INTEGER, INTENT(in) :: do_mean ! 1 to compute ensemble mean; 21 ! 0 take values froem state_p as ensemble mean 22 INTEGER, INTENT(in) :: do_stddev ! 1 to compute the ensemble mean standard deviation; 23 ! 0 no computation of ensemble standard deviation 24 INTEGER, INTENT(in) :: COMM_filter ! Filter communicator 25 INTEGER, INTENT(out) :: status ! Status flag (0=success) 26 26 }}} 27 27