sppt Module

For computing stochastically perturbed parametrization tendency (SPPT) patterns.

To be used as multiplicative noise applied to physical tendencies. SPPT is a parametrization of model error. See ECMWF Tech. Memo. #598 (Palmer et al. 2009).


Uses

  • module~~sppt~~UsesGraph module~sppt sppt module~types types module~sppt->module~types module~params params module~sppt->module~params iso_fortran_env iso_fortran_env module~types->iso_fortran_env module~params->module~types

Used by

  • module~~sppt~~UsedByGraph module~sppt sppt proc~get_physical_tendencies get_physical_tendencies proc~get_physical_tendencies->module~sppt

Contents


Variables

TypeVisibility AttributesNameInitial
real(kind=p), public, parameter, dimension(kx):: mu =(/1, 1, 1, 1, 1, 1, 1, 1/)

Array for tapering value of SPPT in the different layers of the atmosphere. A value of 1 means the tendency is not tapered at that level

logical, private :: first =.true.

Flag for controlling first-use behaviour

real(kind=p), private, parameter:: time_decorr =6.0

Decorrelation time of SPPT perturbation (in hours)

real(kind=p), private, parameter:: phi =exp(-(24/real(nsteps, p))/time_decorr)

Time autocorrelation of spectral AR(1) signals

real(kind=p), private, parameter:: len_decorr =500000.0

Correlation length scale of SPPT perturbation (in metres)

real(kind=p), private, parameter:: stddev =0.33

Standard deviation of SPPT perturbation (in grid point space)


Functions

public function gen_sppt(mod_spectral) result(sppt_grid)

Generate grid point space SPPT pattern distribution.

Arguments

Type IntentOptional AttributesName
class(ModSpectral_t), intent(in) :: mod_spectral

Return Value real(kind=p), allocatable, (:,:,:)

The generated grid point pattern

private function randn(mean, stdev)

Generates a random number drawn for the specified normal distribution.

Arguments

Type IntentOptional AttributesName
real(kind=p), intent(in) :: mean

The mean of the distribution to draw from

real(kind=p), intent(in) :: stdev

The standard deviation of the distribution to draw from

Return Value real(kind=p)

The generated random number


Subroutines

private subroutine time_seed()

Seeds RNG from system clock.

Arguments

None