Stochastic shallow convection in ICON

The stochastic routine for shallow convection of Sakradzija et al. (2015) is implemented in ICON as an add-on to the default Tiedtke-Bechtold convection scheme. It is used to correct the mass flux closure for use at 1-10 km resolutions of the model.

The stochastic scheme has been tested in a limited-area setup for the range of resolutions from 1 to 10 km. Tests of a global setup are ongoing.

The stochastic routine samples shallow convective clouds using two random processes:

1. sampling of random variates from the Poisson distribution to set the number of clouds in a model column, $n$, $$ p(n) = \frac{G^n e^{-G}}{n}, $$ where $G$ is the generating rate of clouds per model time step and grid cell area, and
2. sampling of random variates from the Weibull distribution to set the mass flux, $m$, of each of $n$ clouds, $$ p(m) = \frac{k}{\lambda} \left ( \frac{m}{\lambda} \right) ^ {k-1} e^{-(m/\lambda)^k},$$ where $k$ and $\lambda$ are the shape and scale parameters of the Weibull distribution.

As a result of the sampling, in each column of the model, clouds are represented by a random sum of the mass flux $$M=\sum_i^n{m_i}$$ which varies in time and space to form a distribution of the total mass flux $p(M)$. This distribution is scale-adaptive, as its shape changes according to the model resolution (Figure 1).

Figure 1: A sketch of the total mass flux distribution $p(M)$ and its dependency on the model resolution.

The code of the stochastic version of shallow convection can be found in the ICON model branch:

icon-nwp-dev-stochconv

This is a branch in development for operational weather prediction at the Deutscher Wetterdienst.

For the instructions of how to download the model and switch between branches follow the link ICON quick start guide.

The code uses some of the Fortran intrinsic functions, so make sure to compile using the flag

--fall-intrinsics. 


The stochastic routine consists of the main stochastic module:

src/atm-phy_schemes/mo_stochastic_cloud.f90

and optionally of two additional libraries of Fortran routines for generating random variates from the Poisson distribution

random.f90   

and

random_new.f90.

Currently, the code uses an approximative method for sampling the Poisson distribution by sampling the normal distribution using the Box-Muller method. The library random.f90 uses a similar sampling method for $n>10$ with a correction, while for $n<10$ it uses a lookup table. The routine random_new.f90 is the same as random.f90 library but is rewritten to Fortan90 and it still needs to be tested. random.f90 can be used on Mistral, however, it causes runtime problems on some other systems.

The routine is coupled to the convection scheme through the convection interface

src/atm_phy_nwp/mo_nwp_conv_interface.f90.

To run the stochastic version, a flag for the stochastic process has to be activated by setting

lstoch = .TRUE.

in the interface of the convection scheme.

The stochastic version of the convection scheme can be used only in the setting where shallow convection is active, while mid-level and deep convection is set to an inactive state. This is controlled by the namelist parameter

lshallowconv_only = .true.


Limits of the maximum allowed mass flux value in the convection scheme are enforced due to stability problems of the default Tiedtke-Bechtold scheme, which is a common approach among different models. Ideally, these limiters should be switched off in order to allow for the stochastic effects. However, this is not yet possible in some applications, e.g. in the global setup of ICON at resolutions > 5 km.

src/atm-phy_schemes/mo_cuparameters.f90

phy_params%mfcfl = 1._JPRB
rmflic=1.0_JPRB   ! use CFL mass flux limit (1) or absolut limit (0)
rmflia=0.0_JPRB   ! value of absolut mass flux limit
rmflmax=1.75_jprb ! mass flux limit following a suggestion by P. Bechtold [kg/(m**2s)]

The stochastic version of shallow convection is, in general, more stable than the default version. Furthermore, higher resolutions are more stable because the stochastic sampling produces long-tailed distributions of the mass flux at resolutions < 5 km (see Figure 1) and plays a substitute role of a mass flux limiter.

Another important parameter is the maximum allowed shallow cloud depth,

rdepths.

This is the most sensitive parameter at the kilometer-scale resolutions and affects the performance of the subgrid convection to a great extent, but also tremendously affects the resolved scales. The maximum allowed shallow cloud depth can be set by the namelist parameter:

tune_rdepths.

It is tuned in the operational NWP ICON to achieve higher stability of the model by setting it to values lower than the default 200 hPa. The option to use the NWP operational tuning for lshallowconv_only can be set in

src/atm-phy_schemes/mo_cuparameters.f90

IF (lshallow_only) THEN
  phy_params%rdepths=0.65_jprb*tune_rdepths/MAX(1._jprb,(5.e3_jprb/rsltn)**0.75_jprb)
ELSE
  phy_params%rdepths=tune_rdepths
ENDIF

This tuning introduces biases in shallow convection and is deactivated in the stochastic version of convection.

The rdepths parameter should be changed with caution!

Sakradzija, M., and D. Klocke, 2018: Physically constrained stochastic shallow convection in realistic kilometer-scale simulations, Journal of Advances in Modeling Earth Systems, 10, https://doi.org/10.1029/2018MS001358

Sakradzija, M., A. Seifert, and A. Dipankar, 2016: A stochastic scale-aware parameterization of shallow cumulus convection across the convective gray zone, Journal of Advances in Modeling Earth Systems, 8, https://doi:10.1002/2016MS000634

Sakradzija, M., Seifert, A., and Heus, T., 2015: Fluctuations in a quasi-stationary shallow cumulus cloud ensemble, Nonlinear Processes in Geophysics, 22, 65-85, https://doi:10.5194/npg-22-65-2015