midas_calcStats

link to source code

Dependency Diagrams:

midas_calcStats.svg

Direct Dependency Diagram

program  midas_calcstats
Purpose

Swiss-knife type program originally used only for computing background-error covariances (B) based on homogeneous and isotropic (HI) correlations that was extended with time to compute various statistics and diagnostics from an ensemble of background-error estimates

Algorithm

The calcStats program performs various types of statistics and diagnostics based on two modes defined through namelist options.

  • BHI: Compute HI B. The approach for limited-area applications is based on a bi-Fourier

    spectral representation and the CVT described in <https://doi.org/10.1175/2010WAF2222401.1>. For global applications, two formulations based on sperical-harmonics spectral representation are available and controlled controlled by NAMCOMPUTEBHI: 1) the legacy CVT formulation described in <https://doi.org/10.1175/MWR-D-11-00097.1> and refereces therein, and 2) an experimental-only formulation that mimics the CVT model used in the limited-area mode.

  • TOOLBOX: The swiss-knife component of this program controlled by NAMTOOLBOX from the global and LAM calcstats-related modules. Compute various statistics and diagnostics from an ensemble of background-error estimates in model-variable and/or control-variable space, such as: - HI vertical correlations - HI horizontal correlation functions - Variances - Local correlations - Optimal covariance localization radii - Power spectra Note that the above options are not all available in both global and limited-area applications.

Input and Output Files

Description of file

flnml

In - Main namelist file with parameters user may modify

ensemble/$YYYYMMDDHH_$HHH_$NNNN

In - Background-error estimates

various

Out - Too many to be listed here

Synopsis

Below is a summary of the calcStats program calling sequence:

  • Initial setups:

    • Read the NAMCONF and NAMENS namelist

    • Setup horizontal and vertical grid objects using the first ensemble member

    • Various modules are setup: gridStateVector_mod, timeCoord_mod and bmatrix_mod

  • Statistics and Diagnostics:

    • Intialize the module for global or limited-area applications

    • Select the appropriate master routine based on the chosen mode

    • The I/O and number crunching is performed within the global and limited-area modules

Needed modules

  • version_mod: MODULE version_mod (prefix=’ver’ category=’8. Low-level utilities and constants’)

  • midasmpi_mod: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)

  • filenames_mod: MODULE fileNames_mod (prefix=’fln’ category=’7. Low-level data objects’)

  • horizontalcoord_mod: MODULE horizontalCoord_mod (prefix=’hco’ category=’7. Low-level data objects’)

  • verticalcoord_mod: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)

  • calcstatsglb_mod: MODULE calcStatsGlb_mod (prefix=’csg’ category=’1. High-level functionality’)

  • calcstatslam_mod: MODULE calcStatsLam_mod (prefix=’csl’ category=’1. High-level functionality’)

  • utilities_mod: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)

  • ramdisk_mod: MODULE ramDisk_mod (prefix=’ram’ category=’8. Low-level utilities and constants’)

  • gridstatevector_mod: MODULE gridStateVector_mod (prefix=’gsv’ category=’6. High-level data objects’)

  • timecoord_mod: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)

Routines called

ver_printnameandversion(), mmpi_initialize(), utl_tmg_start(), ram_setup(), tim_setup(), gsv_setup(), fln_ensfilename(), gsv_varnameslist(), hco_setupfromfile(), vco_setupfromfile(), csg_setup(), csl_setup(), csg_computebhi(), csl_computebhi(), csg_toolbox(), csl_toolbox(), utl_abort(), utl_tmg_stop()