menetrierDiag_mod

link to source code

Dependency Diagrams:

menetrierDiag_mod.svg

Direct Dependency Diagram

menetrierDiag_mod_rev.svg

Reverse Dependency Diagram

Description

MODULE menetrierDiag_mod (prefix=’bmd’ category=’1. High-level functionality’)

Purpose

To compute optimal localization radii according to the theory developed by Benjamin Menetrier (Meteo-France) and reported in Menetrier, Michel, Montmerle and Berre, 2015, Parts 1 and 2.

Quick access

Routines

bmd_localizationradii(), bmd_setup(), calcdistance(), calchorizlocalizationradii(), calcvertlocalizationradii(), findbinindex()

Needed modules

  • earthconstants_mod: MODULE earthConstants_mod (prefix=’ec’ category=’8. Low-level utilities and constants’)

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

  • localizationfunction_mod: MODULE localizationFunction_mod (prefix=’lfn’ category=’2. B and R matrices’)

  • varnamelist_mod: MODULE varNameList_mod (prefix=’vnl’ category=’7. Low-level data objects’)

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

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

  • ensemblestatevector_mod: MODULE ensembleStateVector_mod (prefix=’ens’ category=’6. High-level data objects’)

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

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

Variables

Subroutines and functions

subroutine  menetrierdiag_mod/bmd_setup(statevector_template, hco_core_in, nens_in, pressureprofile_m_in, pressureprofile_t_in, nwaveband_in)
Arguments
  • statevector_template [struct_gsv ,in]

  • hco_core_in [struct_hco ,in,pointer]

  • nens_in [integer ,in]

  • pressureprofile_m_in (*) [real ,inout,pointer]

  • pressureprofile_t_in (*) [real ,inout,pointer]

  • nwaveband_in [integer ,in]

Called from

csg_toolbox(), csl_toolbox()

Call to

gsv_getnumlev(), gsv_varnameslist(), gsv_getoffsetfromvarname(), vnl_varlevelfromvarname()

subroutine  menetrierdiag_mod/bmd_localizationradii(ensperts[, wavebandindex_opt])
Arguments

ensperts [struct_ens ,inout]

Options

wavebandindex_opt [integer ,in,]

Called from

csg_toolbox(), csl_toolbox()

Call to

calchorizlocalizationradii(), calcvertlocalizationradii()

subroutine  menetrierdiag_mod/calchorizlocalizationradii(ensperts, stride[, wavebandindex_opt])
Arguments
  • ensperts [struct_ens ,inout]

  • stride [integer ,in] :: Pick every stride point to save cost.

Options

wavebandindex_opt [integer ,in,]

Called from

bmd_localizationradii()

Call to

ens_copyensstddev(), ens_varnameslist(), gsv_allocate(), ens_getnumstep(), ens_gethco(), ens_getvco(), tim_getdatestamp(), gsv_transposetilestovarslevs(), gsv_deallocate(), calcdistance(), ens_copymember(), findbinindex(), lfn_setup(), lfn_lengthscale(), utl_abort(), vnl_varlevelfromvarname()

function  menetrierdiag_mod/findbinindex(distance, distancebinthresholds, numbins)
Arguments
  • distance [real ,in]

  • distancebinthresholds (numbins) [real ,in]

  • numbins [integer ,in,]

Return

binindex [integer ]

Called from

calchorizlocalizationradii()

Call to

utl_abort()

function  menetrierdiag_mod/calcdistance(lat2, lon2, lat1, lon1)
Purpose

To compute the distance between two points on Earth: (lat1,lon1) and (lat2,lon2). Calcul utilisant la Formule d’Haversine Reference: R.W. Sinnott,’Virtues of Haversine’,Sky and Telescope, vol.68, no.2, 1984, p.159)

Arguments
  • lat2 [real ,in]

  • lon2 [real ,in]

  • lat1 [real ,in]

  • lon1 [real ,in]

Return

distanceinm [real ]

Called from

calchorizlocalizationradii()

subroutine  menetrierdiag_mod/calcvertlocalizationradii(ensperts, stride[, wavebandindex_opt])
Arguments
  • ensperts [struct_ens ,inout]

  • stride [integer ,in] :: Pick every stride point to save cost.

Options

wavebandindex_opt [integer ,in,]

Called from

bmd_localizationradii()

Call to

ens_copyensstddev(), ens_getlatlonbounds(), ens_getonelev_r4(), vnl_varlevelfromvarname(), lfn_setup(), lfn_lengthscale(), utl_abort()