the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
A dynamic approach to threedimensional radiative transfer in subkilometerscale numerical weather prediction models: the dynamic TenStream solver v1.0
Richard Maier
Fabian Jakub
Claudia Emde
Mihail Manev
Aiko Voigt
Bernhard Mayer
The increasing resolution of numerical weather prediction models makes intercolumn threedimensional (3D) radiative transport more and more important. However, 3D radiativetransfer solvers are still computationally expensive, largely preventing their use in operational weather forecasting. To address this issue, Jakub and Mayer (2015) developed the TenStream solver. It extends the wellestablished twostream method to three dimensions by using 10 instead of 2 streams to describe the transport of radiative energy through Earth's atmosphere. Building upon this method, this paper presents the dynamic TenStream solver, which provides a further acceleration of the original TenStream model. Compared to traditional solvers, this speedup is achieved by utilizing two main concepts. First, radiation is not calculated from scratch every time the model is called. Instead, a timestepping scheme is introduced to update the radiation field, based on the result from the previous radiation time step. Secondly, the model is based on incomplete solves, with just the first few steps of an iterative scheme towards convergence performed every time it is called. Essentially, the model thereby just uses the ingoing fluxes of a grid box to update its outgoing fluxes. Combined, these two approaches move radiative transfer much closer to the way advection is handled in the dynamical core of a numerical weather prediction (NWP) model, as both use previously calculated results to update their variables and thereby just require access to the neighboring values of an individual grid box, facilitating model parallelization. To demonstrate the feasibility of this new solver, we apply it to a precomputed shallowcumuluscloud time series and test its performance in terms of both speed and accuracy. In terms of speed, the dynamic TenStream solver is shown to be about 3 times slower than a traditional 1D δEddington approximation but noticeably faster than currently available 3D solvers. To evaluate the accuracy of the dynamic TenStream solver, we compare its results as well as calculations carried out using a 1D δEddington approximation and the original TenStream solver, to benchmark calculations performed with the 3D Monte Carlo solver MYSTIC. We demonstrate that at the grid box level, dynamic TenStream is able to calculate heating rates and net irradiances at domain boundaries that are very close to those obtained by the original TenStream solver, thus offering a much better representation of the MYSTIC benchmark than the 1D δEddington results. By calling the dynamic TenStream solver less frequently than the δEddington approximation, we furthermore show that our new solver produces significantly better results than a 1D δEddington approximation carried out with a similar computational demand. At these lower calling frequencies, however, the incomplete solves in the dynamic TenStream solver also lead to a buildup of bias with time, which becomes larger the lower the calling frequency is.
 Article
(7082 KB)  Fulltext XML
 BibTeX
 EndNote
Sources and sinks of radiative energy in the atmosphere are the main drivers of both weather and climate. They are quantified by heating rates and net surface irradiances and are calculated using radiativetransfer models, which describe the transport of radiative energy through Earth's atmosphere, ideally allowing for full threedimensional (3D) transport of energy. Depending on the scale, we can differentiate between two different regimes of 3D radiative transport: at the model grid scale, 3D radiative transfer allows for the horizontal transport of energy between adjacent model columns, whereas at the subgrid scale, it refers to the 3D transport of radiative energy within a heterogeneous model grid box. The calculation of both of these effects is computationally expensive, largely preventing their representation in operational weather forecasting. This is why, to this date, numerical weather prediction (NWP) models still use onedimensional (1D) independentcolumn approximations (ICAs), such as the Monte Carlo independentcolumn approximation (McICA; Pincus et al., 2003) currently employed at both the Deutscher Wetterdienst (DWD) and the European Centre for MediumRange Weather Forecasts (ECMWF) (DWD, 2021; Hogan and Bozzo, 2018). These models assume that radiative transport between grid boxes only takes place in the vertical and neglect any horizontal transport of energy – both in between different model columns and within individual model grid boxes.
However, both of these effects have been shown to be important for the correct calculation of radiative transfer in the atmosphere. While subgridscale 3D effects primarily act at coarser resolutions, where an individual grid box incorporates both cloudy and clearsky regions and should thus not be treated homogeneously, the increasing horizontal resolution of NWP models makes intercolumn radiative transfer more and more important (O'Hirok and Gautier, 2005). Especially in largeeddy simulations (LESs) with hectometerscale resolutions, intercolumn radiative transport has been shown to affect both the organization and development of clouds. Klinger et al. (2017), for example, showed that considering it in the thermal spectral range leads to systematically greater cooling and much stronger organizational effects than in simulations driven by 1D radiative transfer. In accordance with that, Jakub and Mayer (2017) demonstrated that intercolumn 3D radiative transfer in the solar spectral range may lead to the formation of cloud streets that are not found to this extent in 1D simulations.
To account for these increasingly important effects, in recent years, a lot of effort has been put into making 3D radiativetransfer models computationally more feasible. Targeted towards subgridscale 3D effects, the Speedy Algorithm for Radiative Transfer through Cloud Sides (SPARTACUS; Schäfer et al., 2016; Hogan et al., 2016), for example, provides a fast method to calculate 3D radiative effects at the resolutions of currently employed global atmospheric models. To this end, it introduces additional terms into the wellestablished twostream scheme to account for the radiative transport between cloudy and clear regions inside an individual model column. On the other hand, a lot of work has gone into the speeding up of intercolumn radiative transport at subkilometerscale resolutions, where model grid boxes can be gradually treated homogeneously. A large group of these models simplify the expensive angular part of 3D radiativetransfer calculations by just using a discrete number of angles (e.g., Lovejoy et al., 1990; Gabriel et al., 1990; Davis et al., 1990). Most recently, the TenStream solver (Jakub and Mayer, 2015) built upon this idea. It is capable of calculating 3D radiative fluxes and heating rates in both the solar and the thermal spectral ranges. To do so, it extends the 1D twostream formulation to 10 streams to consider the horizontal transport of energy. Besides the TenStream solver, the neighboring column approximation (NCA; Klinger and Mayer, 2016, 2020) provides a fast analytical method for calculating intercolumn 3D heating rates in the thermal spectral range. For that purpose, it estimates cloud side effects by taking just the direct neighbors of a specific grid box into account. Apart from these two approaches, significant progress has also been made in accelerating highly accurate 3D Monte Carlo solvers for use in LES models, with Veerman et al. (2022), for example, speeding up the method through the use of graphics processing units (GPUs). This allowed them to perform LES simulations driven by a full Monte Carlo solver for the first time ever. However, despite all these efforts, all of these solvers are still too slow to be used operationally, with the GPUaccelerated Monte Carlo solver of Veerman et al. (2022), for example, being at least 6.4 times slower than the twostream model they compare it to. This high computational burden prohibits the use of all of these models in operational forecasting, especially given that radiation is already called far less often than the dynamical core of NWP models.
To address this high computational cost of current 3D solvers, this paper presents a first step towards a new “dynamic” 3D radiativetransfer model. Currently designed for the use at subkilometerscale horizontal resolutions, where model grid boxes can be assumed to be homogeneous, this new fully 3D model is based on the TenStream solver. It accelerates intercolumn 3D radiative transfer towards the speed of currently employed 1D solvers by utilizing two main concepts. First, the model does not calculate radiation from scratch every time it is called. Instead, it treats radiation more like dynamics by using a timestepping scheme to update the radiation field based on the result from the previous time step. Secondly, the model is based on incomplete solves – it performs just the first few steps towards convergence every time it is called.
A detailed description of this method can be found in Sect. 2 of this paper. In Sect. 3, we then introduce a precomputed LES shallowcumuluscloud time series and further methodology to assess the quality of the new dynamic TenStream solver in terms of both speed and accuracy, while also considering different calling frequencies. To this end, we compare it to a traditional 1D δEddington approximation, the original TenStream solver and a benchmark simulation provided by the 3D Monte Carlo solver MYSTIC (Mayer, 2009). The results of this evaluation are presented in Sect. 4. The paper ends with a summary and outlook, given in Sect. 5.
Our goal is to create a 3D radiativetransfer solver that calculates radiative fluxes and heating rates at a significantly faster speed than other intercolumn 3D solvers while also delivering a noticeable improvement in terms of accuracy over currently employed 1D radiation schemes. Here, we explain the foundation and functionality of our newly developed dynamic TenStream solver, which aims to achieve these targets using a timestepping scheme and incomplete solves.
2.1 The original TenStream model
We build upon the TenStream model (Jakub and Mayer, 2015), which extends the established twostream formulation to three dimensions. Figure 1 shows the definition of its streams, i.e., radiative fluxes (in units of W), for a single rectangular grid box, with the indices $(i,j,k)$ indicating the position of the box in a Cartesian grid of size ${N}_{x}\cdot {N}_{y}\cdot {N}_{z}$.
Ten streams (Φ_{0}, Φ_{1}, …, Φ_{9}; depicted in blue) are used to describe the 3D transport of diffuse radiation. As in the twostream formulation, two of them (Φ_{0} (upward) and Φ_{1} (downward)) characterize the transport in the vertical, whereas four additional streams are introduced to describe the transport in each of the two additional horizontal dimensions. The transport of direct radiation, i.e., radiation originating from the sun that has not yet interacted with the atmosphere, is treated separately using the three additional streams S_{0}, S_{1} and S_{2}, one for each dimension (shown in red in Fig. 1). Using these streams, the radiative transport through a single grid box $(i,j,k)$ in the case of the sun shining from the southwest can be expressed by the following matrix equation:
Note the following about this equation:

The vector ${\mathbf{\Phi}}_{\text{in},i,j,k}$ consists of all the radiative fluxes entering grid box $(i,j,k)$. For reasons of clarity, will use the expression ${\mathrm{\Phi}}_{\text{in},m,i,j,k}$ to address an individual entry m of this vector, implying that, for example, ${\mathrm{\Phi}}_{\text{in},\mathrm{10},i,j,k}$ equals ${S}_{\mathrm{0},i,j,k+\mathrm{1}}$ in the case of the sun shining from the southwest.

The matrix ${\mathbf{T}}_{i,j,k}$ describes the scattering and absorption of the ingoing radiation ${\mathbf{\Phi}}_{\text{in},i,j,k}$ on its way through the grid box, with ${a}_{\mathrm{00},i,j,k}$, for example, quantifying the fraction of the upward flux entering the grid box at the bottom (${\mathrm{\Phi}}_{\mathrm{0},i,j,k}$) that exits the box in the same direction through the top (${\mathrm{\Phi}}_{\mathrm{0},i,j,k+\mathrm{1}}$). While the “a” coefficients describe the transport of diffuse radiation, the “b” coefficients quantify the fraction of direct radiation that gets scattered, thus providing a source term for the 10 diffuse streams. The “c” coefficients describe the amount of direct radiation that is transmitted through the grid box without interacting with the medium. All of these transport coefficients depend on the optical properties (optical thickness, singlescattering albedo, asymmetry parameter, gridbox aspect ratio and angle of solar incidence) of the particular grid box. They are precomputed using Monte Carlo methods and stored in lookup tables (Jakub and Mayer, 2015). We will use the expression ${t}_{mn,i,j,k}$ to refer to the entry in row m and column n of the full matrix ${\mathbf{T}}_{i,j,k}$.

The vector ${\mathit{B}}_{i,j,k}$ quantifies the amount of thermal radiation that is emitted in the direction of every one of the 10 diffuse streams. Its entries ${B}_{m,i,j,k}$ are calculated by multiplying the blackbody radiation that is emitted in the corresponding direction (${B}_{\text{eff},m,i,j,k}$) by the emissivity of the grid box in that direction. According to Kirchhoff's law, this emissivity of a grid box in a certain direction is the same as the absorptivity of radiation coming from that direction, which, in turn, is 1 minus the transmittance in that direction. For example, the emissivity ${e}_{\mathrm{0},i,j,k}$ of grid box $(i,j,k)$ in the upward direction is equal to the fraction of the downwardfacing radiative flux ${\mathrm{\Phi}}_{\mathrm{1},i,j,k+\mathrm{1}}$ that is absorbed on the way through that grid box, which, in turn, is 1 minus the sum of all fractions ${a}_{n\mathrm{1},i,j,k}$ of ${\mathrm{\Phi}}_{\mathrm{1},i,j,k+\mathrm{1}}$ exiting grid box $(i,j,k)$, i.e.,
$${e}_{\mathrm{0},i,j,k}=\mathrm{1}\sum _{n=\mathrm{0}}^{\mathrm{9}}{a}_{n\mathrm{1},i,j,k}\phantom{\rule{0.25em}{0ex}},$$where ${a}_{n\mathrm{1},i,j,k}$ refers to the corresponding entries in the second column of matrix ${\mathbf{T}}_{i,j,k}$.

The vector ${\mathbf{\Phi}}_{\text{out},i,j,k}$ consists of all radiative fluxes exiting the grid box $(i,j,k)$. For every stream, it contains all the radiative energy that has not interacted with the grid box on its way through plus, in case of the diffuse streams, the radiative energy that has been scattered and emitted in that direction along that way. Similar to the ingoing flux vector, we use the expression ${\mathrm{\Phi}}_{\text{out},m,i,j,k}$ to refer to an entry m of the full vector ${\mathbf{\Phi}}_{\text{out},i,j,k}$.
Combined, the equations for all the ${N}_{x}\cdot {N}_{y}\cdot {N}_{z}$ grid boxes make up a large system of coupled linear equations that must be provided with boundary conditions at the edges of the domain. At the top and bottom, these are determined by the incoming solar radiation on one side and by ground reflection and emission on the other:
Here, E_{0} denotes the extraterrestrial solar irradiance (in units of W m^{−2}), θ_{inc} the solar zenith angle, A_{g} the ground albedo, B_{g} the emitted blackbody radiance of the ground (in units of W m^{−2} sr^{−1}), and Δx and Δy the horizontal grid box lengths (in units of m). The boundary conditions employed at the sides of the domain depend on the model configuration and can be either cyclic or provided by neighboring subdomains. The resulting system of linear equations can then be solved by various numerical methods. In the original TenStream solver, they are provided by the parallel linear algebra library PETSc (Balay et al., 2023).
2.2 Introducing timestepping and incomplete solves: the dynamic TenStream solver
However, solving this large system of linear equations is a difficult task, especially when it needs to be parallelized for large NWP simulations. The main reason behind this difficulty is the fundamentally different approaches to how radiation and dynamics are treated in numerical models. On the one hand, solving the equations of motion that govern advection in the dynamical core of an NWP model represents an initial value problem that has no known analytical solution. Hence, these equations are discretized in space and time and solved by a timestepping scheme, where model variables are gradually propagated forward in time by applying the discretized equations to values obtained at previous time steps (Holton and Hakim, 2012). An individual grid box thereby only needs information about itself and its nearby surroundings, facilitating model parallelization. Radiative transfer, on the other hand, is treated as a boundary value problem, where information is not gradually propagated through the domain but rather spreads almost instantaneously at the speed of light, involving the entire model grid. Threedimensional radiative transfer can thus easily break model parallelization, as a radiative flux at any position in the domain can theoretically depend on all other radiative fluxes throughout the domain. This can be seen by looking at the coupled structure of the equations in the original TenStream solver in Eq. (1).
2.2.1 The Gauß–Seidel method
We tackle this problem by treating radiation similarly to initial value problems. To this end, we build upon the TenStream linearequation system revisited in Sect. 2.1 and examine its solution with the Gauß–Seidel method, as described in, e.g., Wendland (2017). According to this iterative method, a system of linear equations must be transformed in such a way that one equation is solved for every unknown variable. This form is given by the equations in Eq. (1), with the unknown variables being all the radiative fluxes in the entire domain. Providing first guesses for all of these variables, one then iterates through all these equations and sequentially updates all the radiative fluxes on the lefthand sides of the equations by applying either the first guess or, if already available, the updated values to the corresponding variables on the righthand sides of the equations. Applied to the TenStream equations, this means that one gradually iterates through all the grid boxes of the entire domain. For every grid box, one then calculates updated values for the outgoing fluxes ${\mathrm{\Phi}}_{\text{out},m,i,j,k}^{(l+\mathrm{1})}$ on the lefthand side of Eq. (1) by applying either the already updated ingoing fluxes ${\mathrm{\Phi}}_{\text{in},m,i,j,k}^{(l+\mathrm{1})}$ or, if those are not yet available, their values ${\mathrm{\Phi}}_{\text{in},m,i,j,k}^{\left(l\right)}$ from the previous Gauß–Seidel iteration step to the variables on the righthand sides of the equations:
Here, the indices m and n denote an individual entry of the outgoing flux vector ${\mathbf{\Phi}}_{\text{out},i,j,k}$, the ingoing flux vector ${\mathbf{\Phi}}_{\text{in},i,j,k}$ or the thermal source vector ${\mathit{B}}_{i,j,k}$, whereas l quantifies the Gauß–Seidel iteration step and ${t}_{mn,i,j,k}$ refers to the corresponding entry in matrix ${\mathbf{T}}_{i,j,k}$ in Eq. (1). Completing this procedure for all the grid boxes and boundary conditions accomplishes one Gauß–Seidel iteration. One can then repeat this procedure with the updated radiative fluxes serving as the new first guess until the values eventually converge to the solution of the linearequation system. The thermal source terms are not part of the first guess and have to be calculated from scratch, following the pattern outlined in Sect. 2.1, before starting with the Gauß–Seidel algorithm.
2.2.2 Dynamic treatment of radiation
We use the Gauß–Seidel method to significantly speed up 3D radiativetransfer calculations by utilizing two main concepts: a timestepping scheme and incomplete solves.
To introduce the timestepping scheme, we make use of the fact that the Gauß–Seidel algorithm requires us to choose an initial guess for where to start. So, instead of solving the whole TenStream linearequation system from scratch every time, we use the result obtained at the previous call of the radiation scheme as a starting point for the algorithm. Assuming that the field of optical properties determining the radiative fluxes has not changed fundamentally between two calls of the radiation scheme, this first guess should already be a good estimator of the final result. However, for the very first call of the radiation scheme, we cannot use a previously calculated result. In order to choose a reasonable starting point of the algorithm for this first call as well, we could use a full TenStream solve. However, such a solve would be computationally expensive and rely on numerical methods provided by the PETSc library, which we want to get rid of with our new solver to allow for easier integration into operational models. So, instead of performing a full TenStream calculation, we decided to solve the TenStream linearequation system for a clearsky situation as a starting point. This is the spinup mentioned in Fig. 2. Since there is no horizontal variability in the cloud field in a clearsky situation and our model does not feature any horizontal variability in the background atmosphere, we can perform this calculation for a single vertical column at a dramatically increased speed compared to a calculation involving the entire model grid. We cannot use a 1D solver for that, however, because we also need to pass initial values to the sidewardfacing fluxes in the TenStream equation system. Assigned to the radiative fluxes of all vertical columns in the entire domain, these values then provide first guesses for all the TenStream variables that can be assumed to be much closer to the final result than starting with values of zero – even if the background atmosphere was not horizontally homogeneous and we would have to take the average of that background first.
Based on the idea that the radiative field does not fundamentally change between two calls of the radiation scheme, we furthermore just perform a limited number N of iterations of the Gauß–Seidel algorithm every time the radiation scheme is called, essentially not letting it fully converge. Unless the radiative fluxes have changed dramatically compared to the last calculation, adjusting the variables towards the new solution should already provide a good approximation of the full solution, especially since it incorporates intercolumn 3D effects, unlike the 1D independentcolumn solutions used nowadays.
The combination of these two efforts is visualized in Fig. 2. Instead of calculating a full 1D solution from scratch every time radiation is called, our dynamic approach uses the previously obtained result as the starting point of a new incomplete 3D solve. This treatment of radiation puts it much closer to the way initial value problems like advection in the dynamical core of an NWP model are handled. Both use previously calculated results to update their variables. And, looking at an individual grid box, updating the outgoing fluxes by applying Eq. (2) only requires access to the fluxes entering that exact same grid box and thus only to neighboring values, just like in the discretized equations describing advection in the dynamical core of an NWP model.
But, even though the calculation of updated outgoing fluxes only requires access to fluxes entering the exact same grid box, this update process can indeed involve more distant grid boxes, since their calculation uses ingoing fluxes calculated in the very same Gauß–Seidel iteration wherever possible. And, since these ingoing fluxes are outgoing fluxes of a neighboring grid box that may have also been calculated using already updated radiative fluxes, information can spread across the domain wherever possible, involving, e.g., entire subdomains in NWP models. This is visualized in Fig. 3, which shows the first few steps of a Gauß–Seidel iteration in two dimensions only. Looking, for example, at the third step, outgoing fluxes of the upperright grid box (highlighted in gray) are updated using the corresponding ingoing fluxes. Thereby, the ingoing flux of direct radiation entering the grid box on the lefthand side, for example, already contains radiative transfer through the two grid boxes on its lefthand side. This shows that the iteration direction through the grid boxes within a Gauß–Seidel iteration is crucial, as information can spread much faster in the direction one iterates through the grid boxes. Since the Gauß–Seidel algorithm allows us to freely choose the order in which to proceed through the system of linear equations, we can use this order to our advantage. First, we use the fact that, whereas diffuse radiation spreads into all directions simultaneously, direct radiation clearly propagates in the direction of the sun. Hence, for the solar spectral range, we first iterate through the grid boxes in the direction given by solar incidence in the horizontal and then from top to bottom in the vertical, as indicated by the dashed brown arrow in Fig. 3. In contrast to this 2D example, both horizontal dimensions are affected by the position of the sun in the fully 3D case, of course. If the sun is shining from the southwest, for example, we would hence first iterate from south to north and from west to east in the horizontal before iterating from top to bottom. In the thermal spectral range, however, emitted radiation is larger in the lower part of the domain due to the vertical temperature gradient in the atmosphere. Hence, we iterate from bottom to top in the vertical there. Independent of the spectral range, we, however, still need to consider that diffuse radiation spreads in all directions simultaneously, which we do not account for by using a fixed iteration direction. Thus, every time we finish iterating through all the grid boxes, which completes a Gauß–Seidel iteration step, we reverse the direction of iteration in all three dimensions to not favor the propagation of information in one direction.
Combined, these efforts should allow us to very efficiently calculate radiative transfer in three dimensions. First, the timestepping scheme allows us to already start with a reliable first guess instead of calculating everything from scratch. Next, we speed up the rate of convergence by choosing a proper order in which to proceed through the linearequation system. And, since the updated solution should not be radically different from the previous one, we furthermore just perform a limited number of Gauß–Seidel iterations, essentially exiting the algorithm before it fully converges, noting that an incomplete 3D solution should still be better than a 1D solution that neglects all 3D effects, as we will also see later on (in Sect. 4). And, finally, updating the outgoing radiative fluxes of any grid box within a Gauß–Seidel iteration just requires access to the fluxes entering the exact same grid box, which facilitates model parallelization. Implemented into the method, incomplete dynamic TenStream solves, each with N Gauß–Seidel iterations, would then be calculated in parallel for the different subdomains, with communication between these subdomains ideally taking place just once afterwards, at the end of the radiation scheme call. In this case, the spread of information would be limited to the scopes of the individual subdomains for every call of the radiation scheme.
2.2.3 Calculation of heating rates
In the end, though, we are not just interested in calculating radiative fluxes. We are especially interested in computing 3D heating rates. They quantify local changes in temperature with time due to sources and sinks of radiative energy in the atmosphere and can be calculated using the net irradiance divergence (Mayer, 2018):
Here, T denotes the temperature, t the time, ρ the air density, c_{p} the specific heat capacity of air at constant pressure and E the net irradiance (in units of W m^{−2}), with components E_{x}, E_{y} and E_{z} when expressed in Cartesian coordinates. When applied to the TenStream fluxes (in units of W) outlined in Sect. 2.1, we have to find expressions for the net flux in all three dimensions and then divide these by the area of the grid box surface they refer to. For the calculation of net fluxes, we have to recall that TenStream features two streams to describe the transport of diffuse radiation on each of its sides. Since these two streams describe the flux entering and exiting a grid box in the upper and lower hemispheres, respectively, the total flux entering or exiting a grid box on one of its sides is given by the sum of these two streams. The net flux in any of the three dimensions is thus given by adding up all diffuse and direct fluxes entering the grid box in that dimension and subtracting those exiting it in the very same dimension. The heating rate of a grid box can thus be expressed as
with Δx, Δy and Δz quantifying the size of the grid box. However, this formula raises some problems when used in combination with the incomplete solves introduced in Sect. 2.2.2. To explain this, we once more look at Fig. 3. While, for example, fluxes exiting the upperleft grid box are updated in the very first step, the diffuse flux entering that exact same grid box from the bottom is updated much later in the fourth step. Hence, when the whole Gauß–Seidel iteration is completed, the fluxes exiting a certain grid box do not necessarily match the ones entering it anymore; i.e., the fluxes are not consistent anymore. This can lead to heating rates that are unphysically large or negative in the solar spectral range. To avoid this problem, we have to rephrase the outgoing fluxes in Eq. (4) in terms of ingoing fluxes, as given by the equations in Eq. (1):
Since this expression incorporates the radiative transfer throughout the corresponding grid cell, it ensures that all fluxes involved in the calculation of the heating rate are consistent with each other and thus provides physically correct 3D heating rates.
The dynamic TenStream solver outlined in Sect. 2 was implemented in the libRadtran library for radiative transfer (Emde et al., 2016; Mayer and Kylling, 2005), allowing the performance of the new solver to be tested with respect to other solvers using an otherwise identical framework. Using this environment, our goal is to demonstrate that the new dynamic TenStream solver produces more accurate results than 1D independentcolumn solvers employed nowadays while still being noticeably faster than typical 3D solvers. Therefore, this section will first introduce our test setup as well as the solvers we compare dynamic TenStream with. Then, we will explain how we determine its performance in terms of both speed and accuracy. Since 3D solvers are computationally much more demanding than 1D solvers, in this analysis, special emphasis will also be placed on the calling frequency of the radiativetransfer calculations in order to elaborate whether the dynamic TenStream solver still performs better when operated with a similar computational demand to current 1D solvers.
3.1 Cloud and model setup
Our test setup is centered around a shallowcumuluscloud time series prepared by Jakub and Gregor (2022), which was computed using the University of California, Los Angeles (UCLA) largeeddy simulation (LES) model (Stevens et al., 2005). The dynamics in this LES simulation are driven not by radiation but by a constant net surface flux, as described in the corresponding namelist input files. Originally, the data set features both a high temporal resolution of 10 s and 256×256 grid boxes with a high spatial resolution of 25 m in the horizontal. It is 6 h long and characterized by a continuously increasing cloud fraction, starting with a clearsky situation and ending up with a completely overcast sky. In addition, a southerly wind with a speed between 3 and 4.7 m s^{−1} transports the clouds through the domain (Gregor et al., 2023).
We have chosen this data set for two reasons. First, the high temporal resolution allows us to investigate the effect of incomplete solves in the dynamic TenStream solver with regard to the calling frequency of the solver. As we outlined in Sect. 2.2.2, we expect these incomplete solves to perform best if the cloud field that mainly determines the radiative field does not change much in between two radiation time steps. Due to the high temporal resolution, we can investigate how well the incomplete solves perform if we call the solver less often by comparing runs with low calling frequencies to runs with the highest possible calling frequency of 10 s. On the other hand, we need the high spatial resolution of the data, since dynamic TenStream does not yet take subgridscale cloud variability into account. However, we may not need a horizontal resolution of 25 m for that. Thus, to test the dynamic TenStream solver on a resolution that is closer to that of operational weather models without having to account for subgridscale cloud variability, we decided to reduce the horizontal resolution of the cloud fields to 100 m. To avoid problems with an artificially low liquidwater content (LWC) at cloud edges when averaging the cloud field to that resolution, we constructed these lessresolved cloud fields by simply using the data for just every fourth grid box in both horizontal dimensions. The resulting time series still features a temporal resolution of 10 s, but the cloud data grid is reduced to 64×64 grid boxes with a resolution of 100 m in the horizontal. In the vertical, the modified cloud data set consists of 220 layers with a constant height of 25 m, thus reaching up to a height of 5.5 km. Using this modified grid, the shape of the grid boxes is also closer to the one in NWP models, with their horizontal extent being larger than their vertical extent.
For our test setup, we focus on the 100 time steps between 8000 and 9000 s into the simulation, where the shallowcumuluscloud field has already formed but has not yet reached a very high cloud fraction, as neither a clear nor a completely overcast sky are beneficial for 3D cloudradiative effects. Figure 4 shows the modified cloud field for the very first time step in this time frame. Looking at the vertically integrated liquidwater content in panel (b) in particular, one can see that our reduced horizontal resolution of 100 m allows us to still resolve the structure of the clouds.
Apart from the cloud field, the 1976 US standard atmosphere (Anderson et al., 1986) interpolated onto the vertical layers given by the cloud data grid serves as the background atmosphere. Above the cloud data grid, the native US standard atmosphere levels provided by libRadtran are used, so that the full grid features 264 layers in the vertical up to a height of 120 km. In both the solar and the thermal spectral ranges, the simulations are carried out using the molecular absorption parameterization from Fu and Liou (1992, 1993). In the solar spectral range, the sun is placed at a constant zenith angle of 50° and in the east. The zenith angle was chosen to be quite low so that 3D effects such as cloud side illumination and shadow displacement are more pronounced, representing a typical morning scene. Furthermore, the surface albedo in the solar spectral range is set to 0.125, resembling the global mean value of Trenberth et al. (2009), whereas the ground emissivity is set to 0.95 in the thermal spectral range.
3.2 Overview of the radiativetransfer solvers
We apply four different radiativetransfer solvers to the aforementioned shallowcumuluscloud time series: the newly developed dynamic TenStream solver, the original TenStream solver, a classic 1D δEddington approximation and a fully 3D Monte Carlo solver.
Let us discuss the setup of the dynamic TenStream solver first. As we outlined in Sect. 2.2.2, it has to be provided with a first guess the very first time it is called, due to the unavailability of a previously calculated result at this point in time. To evaluate the performance of the new solver, it is a good idea to use the bestpossible solution for this first guess. This way, one can examine whether the results obtained from there on using dynamic TenStream featuring incomplete solves diverge from those retrieved by the original TenStream solver using full solves. Hence, we initially perform 2000 iterations for the clearsky spinup described in Sect. 2.2.2, followed by N_{0}=500 Gauß–Seidel iterations that also involve the cloud field to ensure that the radiative field is fully converged at the beginning of the time series. These two steps are visualized by the spinup and the arrow with the first N_{0} Gauß–Seidel iterations in Fig. 2. From there on, we just use a minimum of two Gauß–Seidel iterations every time the solver is called. Using two instead of just one iteration ensures that the iteration direction mentioned in Sect. 2.2.2 is altered at least once per call. In this way, we guarantee that information is not preferably transported in one specific direction. Furthermore, to investigate the effect of using more than just two Gauß–Seidel iterations per call, we also performed nine additional runs with integer multiples of two Gauß–Seidel iterations, i.e., with 4, 6, …, 20 Gauß–Seidel iterations per call.
Since the dynamic TenStream solver is based on the original TenStream solver, reproducing its results despite applying incomplete solves is the best outcome that we can expect. Thus, the original TenStream solver (Jakub and Mayer, 2015) serves as a bestcase benchmark for our new solver. On the other hand, our goal is to significantly outperform currently employed 1D ICAs. Consequently, the δEddington solver incorporated into the libRadtran radiativetransfer library serves as a worstcase benchmark for our new solver that we should definitely surpass.
Finally, we also apply the 3D Monte Carlo solver MYSTIC (Mayer, 2009) to the shallowcumuluscloud time series. When operated with a largeenough number of photons, it allows us to determine the most accurate 3D heating rates possible. Hence, these results can be used as a benchmark for all the other solvers. For our MYSTIC simulations, we used a total of 400 000 000 photons for every time step, which is about 100 000 per vertical column, resulting in domainaverage mean absolute errors in both heating rates and irradiances that are not larger than 1 % of their respective domain averages.
3.3 Speed and accuracy evaluation
As we mentioned earlier, our goal is to evaluate the performance of dynamic TenStream in terms of both speed and accuracy. However, in particular, determining the speed of a solver with respect to others is not a straightforward task, as it is highly dependent on the environment the code is executed in. Since the dynamic TenStream solver is still in an early stage of development and this work is primarily focused on demonstrating the feasibility of the main concepts of the solver, we wanted to keep the speed analysis as simple as possible. We decided to perform three radiativetransfer computations for each of the previously mentioned solvers on the same workstation for the first cloud field in our time series. The average of these three run times for every solver should at least provide a rough estimate of the speeds of the different solvers relative to each other. All calculations were performed on a single core. We compare the computational time for incomplete dynamic TenStream solves with two Gauß–Seidel iterations per call, which is the same setup as the one we will use for the investigation of the performance of the new solver later on, to run times for full solves by the 1D δEddington approximation, the original TenStream solver and MYSTIC. This comparison is not entirely fair for the original TenStream solver, though, as this solver can be run in a timestepping scheme as well, thus relying on previously calculated results, which noticeably increases its speed compared to the calculations from scratch that we are using. However, this timestepping option for the original TenStream solver is not yet available within libRadtran.
To assess the accuracy of the dynamic TenStream solver, we study the entire time series. We focus our analysis on how well the solvers perform in determining 3D heating rates and net irradiances at the upper and lower domain boundaries. As mentioned in Sect. 3.2, values derived by MYSTIC serve as benchmark values. We evaluate the performance of the other three solvers compared to MYSTIC using two different error measures: a mean absolute error (MAE) and a mean bias error (MBE). The mean absolute error describes the amount by which the heating rate or net irradiance of an individual grid box deviates from the benchmark solution on average:
Here, 〈…〉 denotes a spatial average, whereas the subscript “ref” refers to a reference value, i.e., the MYSTIC values in our case. Since the mean absolute error is sensitive to how the values of an individual grid box deviate from the benchmark solution, it is a measure of whether a solver gets the overall heating rate or net irradiance pattern right. It is sensitive to doublepenalty errors; i.e., it gets large when local minima and maxima in this pattern are displaced between the benchmark solution and the investigated solver. We have chosen an absolute error measure rather than a relative one here because individual heating rates or net irradiances can be close to zero and thus blow up a relative error measure. The mean bias error, on the other hand, is an error measure targeted towards the domain mean heating rate or net irradiance:
In contrast to the MAE, the MBE compares domainaverage values to each other and is thus a measure of whether we get the domainaverage heating rate or net irradiance right. It is not sensitive to the spatial pattern of these quantities; rather, it tells us whether there is, on average, too much or too little absorption in the domain compared to the benchmark solution. Domain averages of heating rates and net irradiances are usually not close to zero, so we can also take a look at the relative mean bias error (RMBE) here:
Applied to the shallowcumuluscloud time series at its full temporal resolution of 10 s, these two error measures allow us to determine the accuracy of the dynamic TenStream, the original TenStream and the δEddington calculations compared to the MYSTIC benchmark run at any point in time. We can also ensure that the benchmark solution itself has a significantly smaller error than the other solvers when compared to this benchmark. Therefore, we use the standard deviation σ_{ref}, which can be determined for every single MYSTIC value. However, this standard deviation describes the mean squared deviation of a MYSTIC value from its mean, whereas the MAE that we are using looks at the mean absolute deviation. For normally distributed random variables, however, the mean absolute deviation is simply given by
with σ being the standard deviation (Geary, 1935). We can assume that the benchmark run is of sufficient quality if this MAD of the MYSTIC values is much smaller than the corresponding mean absolute deviations between MYSTIC and the values of the other solvers. Hence, we can use the domainaverage MAD of the benchmark solution to quantify the domainaverage MAE of the benchmark solution at any point in time:
We cannot provide a number for the MBE of the benchmark solution, though, as we only know how much the individual MYSTIC values are scattered around their mean, not whether this mean has an inherent bias. Hence, we simply have to assume that our benchmark simulation is unbiased.
So far, this evaluation would only tell us the accuracy of the different solvers compared to the benchmark run when operated at the same highestpossible calling frequency of 10 s. However, radiation is usually called far less often than the dynamical core of the model. Also, 3D radiativetransfer solvers are computationally much more demanding than 1D solvers, raising the question of how well dynamic TenStream performs when operated with a similar computational demand to the 1D δEddington approximation. To address these questions, we also investigate the effect of the radiation calling frequency on the temporal evolution of the aforementioned error measures.
In order to explain our approach to this, we take a look at Fig. 5. The figure demonstrates how we determine the aforementioned error measures for a solver operated at a lower calling frequency of 30 s with respect to the MYSTIC benchmark run, which is computed at the highestpossible calling frequency of 10 s. At t=8020 s (that is, 20 s into our time series), these error measures are given by comparing the notyetupdated solution that was originally calculated at t=8000 s to the values of the benchmark solution obtained at exactly t=8020 s. In this way, we can investigate how the error metrics of a notupdated radiative field grow until it is eventually updated again. This investigation is particularly important for the dynamic TenStream solver, as it just performs incomplete solves every time it is called. As we expect these to work best if the overall properties determining the radiative field have not changed much in between two calls of the solver, this method allows us to investigate whether our new solver still converges towards the results of the original TenStream solver when operated at lower calling frequencies. For this paper, we decided to take calling frequencies of 10, 30 and 60 s into account. These calling frequencies are still very high for operational weather forecasts, where the radiation time step is typically around 1 h (Hogan and Bozzo, 2018), but we have to consider that our cloud field also features a significantly higher spatial resolution of 100 m in the horizontal compared to 2.2 km in the DWD ICOND2 model (DWD, 2024) and 9 km in the ECMWF highresolution deterministic forecasts (Hogan and Bozzo, 2018). At the LES resolution of 100 m that we use for our evaluation, the Weather Research and Forecasting (WRF) model, for example, recommends using a radiation time step as high as 1 min km^{−1} of horizontal resolution (UCAR, 2024), resulting in a suggested radiation time step of 6 s for our test case. Our highest calling frequency of 10 s is at least close to that number, with the other two calling frequencies of 30 and 60 s definitely representing scenarios where radiation is called less often than recommended.
4.1 Solver speed
The relative speeds of the different radiativetransfer solvers introduced in Sect. 3.2 compared to the run time of the 1D δEddington approximation are shown in Table 1. As we described in Sect. 3.3, all solvers used in this test were executed on a single core of the same workstation and were therefore in a very similar environment. This workstation featured an Intel Xeon W2245 CPU and 64 GB RAM, with performance primarily limited by the network storage, where all the data were placed. We can see that in this experiment, the newly developed dynamic TenStream solver with two Gauß–Seidel iterations is 3.6 times slower than the 1D δEddington approximation in the solar spectral range and just 2.6 times slower in the thermal spectral range. Comparing these numbers to the findings in Jakub and Mayer (2016), they are in line with what we could have expected in terms of the speed of the new solver. According to this paper, retrieving the coefficients of the TenStream linearequation system from the lookup tables in both the solar and thermal spectral ranges takes about as long as performing one δEddington calculation. On top of that, we have to calculate the fluxes for every grid box of the domain, just as in a δEddington calculation. However, for the dynamic TenStream calculation, we have to determine fluxes for 10 instead of 2 streams per grid box and calculate all these fluxes twice, as we perform two Gauß–Seidel iterations whenever the solver is called. And, even though the number of streams (in particular) will most likely not scale linearly with run time, we can thus certainly expect that the new solver will be at least twice as slow as a δEddington approximation. The factors of 3.6 and 2.6 are in line with these expectations.
Although the dynamic TenStream solver is thus noticeably slower than a 1D solver, it is still significantly faster when compared to other 3D solvers executed under similar circumstances – namely the original TenStream and MYSTIC solvers in Table 1. The original TenStream solver, for example, is at least 24 times slower in this experiment than the 1D δEddington approximation, with MYSTIC being even slower. As we pointed out earlier, this comparison is not entirely fair for the original TenStream solver, though, as it can also be run in a timestepping scheme. Jakub and Mayer (2016) showed that, in this case, the original TenStream solver can be up to only a factor of 5 slower than 1D δEddington solves, which, however, is still noticeably slower than the dynamic TenStream solver presented here.
4.2 Performance in determining heating rates
Next, let us have a look at how the dynamic TenStream solver performs in calculating heating rates. Since we are primarily interested in its performance in the surroundings of the continuously evolving clouds, we only use the LES part of the domain for this evaluation, i.e., the part between the surface and 5.5 km height. As mentioned in Sect. 3.3, the analysis will be centered around two different error measures: a mean absolute error and a mean bias error. Figure 6 shows the temporal evolution of the MAE for the different solvers at calling frequencies of 10, 30 and 60 s. At this point, we should recall that the mean absolute error is a measure of how well a solver performs on average in determining the heating rate for a certain grid box.
When operated at the highestpossible calling frequency of 10 s, we can see that the MAE is relatively constant over time for all the solvers, as we compare radiativetransfer calculations carried out at a certain point in time to benchmark calculations obtained at the exact same time step. The MAE in this case is solely determined by the error generated by the solvers themselves when applied to relatively similarly structured shallow cumulus clouds, so this behavior is expected. Looking at the magnitude of the MAE for the different solvers, we can see that for both spectral regions, the δEddington approximation (darkblue line) performs worst, whereas the 3D TenStream solver is a noticeable improvement. Pleasingly, the MAE of our dynamic TenStream solver at a calling frequency of 10 s (darkred dash–dotted line) is almost on par with the error obtained with the original TenStream solver. It is only in the thermal spectral range that the error gets slightly larger with time. This shows that, in this example, at a calling frequency of 10 s, just two Gauß–Seidel iterations per call are already sufficient to almost reproduce the results of the original TenStream solver.
At lower calling frequencies, the radiative field is not updated at every time step of the cloud time series anymore. Consequently, the MAE of each solver rises until the solver is called again. The resulting sawtooth structure can be observed in the MAE time series of all the solvers at calling frequencies of 30 and 60 s. In case of the traditional solvers, a full solve is performed every time they are called. Thus, the MAE at lower calling frequencies always reduces to the value obtained at a calling frequency of 10 s when the corresponding solver is called. This is not necessarily true for the dynamic TenStream solver, however, as it only performs an incomplete solve involving two Gauß–Seidel iterations every time it is called. If this incomplete solve is not sufficient, it could lead to a divergent behavior of the MAE time series for this solver. Looking closely, we can also see that for both of the lower calling frequencies, the MAE of the dynamic TenStream solver does not always match the errors obtained at a calling frequency of 10 s when updated. However, even at a calling frequency of 60 s, we cannot observe a divergent behavior, and the newly developed solver is almost able to reproduce the results of the original TenStream solver whenever called.
Moreover, we have seen that our new solver is about 3 times slower than a traditional 1D δEddington approximation. Looking at Fig. 6, we can now see that, on average over time, dynamic TenStream even performs better than the δEddington approximation at a calling frequency of 10 s (bold blue line) when it is operated at a calling frequency of 30 s (dash–dotted bold red line), and thus with a similar computational demand to the 1D solver, in both the solar and thermal spectral ranges.
Switching to the other error measure, Fig. 7 visualizes the temporal evolution of the mean bias error for the different solvers. In contrast to the MAE discussed before, this error metric describes whether we get the domainaverage heating rate right. As we can clearly see, the MBE is, again, largest for the 1D δEddington approximation and, once more, significantly smaller for the original TenStream solver. When operated at the highestpossible calling frequency of 10 s, the mean bias error of dynamic TenStream is also very similar to that of the original TenStream solver. However, at lower calling frequencies, we can clearly see that the bias increases with time, although it never gets larger than the bias of the 1D results. It is also clearly visible that the bias is more negative than the original TenStream bias (dashed green lines) in the solar spectral range, whereas it is less positive in the thermal spectral range. Since the domainaverage heating rate in the solar spectral range is positive, this implies that our new solver underestimates absorption in this spectral range, especially compared to the original TenStream solver it is based on. This underestimation gets larger the less the dynamic TenStream solver is called. As the liquidwater content in the domain gradually increases with time and more liquid water in the clouds leads to more absorption, this could imply that the dynamic TenStream solver does not fully take this increase into account. This does not explain the behavior of the new solver in the thermal spectral range, though, where domainaverage heating rates are negative. Hence, the positive MBE values observed for both the original as well as the dynamic TenStream solver imply that the heating rates are not as negative there as they should be. But, in contrast to the solar spectral range, these heating rates get more negative the less the dynamic TenStream solver is called, so the dynamic TenStream solver overestimates the magnitude of these thermal heating rates when compared to the original TenStream solver it is based on. Using this and the results obtained from the MAE time series, we can draw our first few conclusions:

For an individual grid box, our new solver is able to determine heating rates much more accurately than current 1D solvers, even when operated with a similar computational demand.

When looking at domain averages, the dynamic TenStream solver begins to develop a bias compared to the original TenStream solver it is based on. This bias becomes larger the lower the calling frequency is, but it remains smaller than the bias of the 1D δEddington calculations at any point in time.
4.3 Performance in determining net irradiances at the upper and lower domain boundaries
Besides heating rates, we are also interested in how well dynamic TenStream performs in determining net irradiances at the top and bottom of its domain. We will start by looking at the results for the net surface irradiances and thus absorption at the ground. Figure 8 shows the temporal evolution of the mean absolute error for this quantity in an otherwise similar fashion to Figs. 6 and 7. As for the heating rates, we can see that the 1D δEddington approximation (blue lines) performs worst, with the original TenStream solver (dashed green lines) being a noticeable improvement once more, remaining significantly below the errors of all 1D runs throughout the entire time series, even at lower calling frequencies. Again, our newly developed dynamic TenStream solver (dash–dotted red lines) is able to almost maintain the MAE of the full TenStream calculations at the highestpossible calling frequency of 10 s, whereas its error slightly increases with time for the two lower calling frequencies. However, this slight divergence from the original TenStream MAE quickly stabilizes and also remains significantly below every single δEddington run, even when the solver is only called every 60 s. What is interesting, though, is that the temporal evolution of the MAE in the thermal spectral range does not show a sawtooth structure at lower calling frequencies, in contrast to all other plots involving the MAE so far. As we discussed earlier, this sawtooth structure is mainly caused by the fact that at lower calling frequencies, we do not update the radiative field for some time steps while the clouds are still moving through the domain, resulting in gradually increasing doublepenalty errors. The fact that this behavior is not observed in the thermal spectral range indicates that the net surface irradiance field does not feature such smallscale structures in the thermal.
To conclude the analysis for the surface, let us once more also have a look at the mean bias error. Again, in contrast to the MAE, this error measure does not tell us how well dynamic TenStream performs in determining the net surface irradiance for a single grid box, but rather whether we get the domainaverage surface absorption right. The corresponding plot is shown in Fig. 9 and reveals a current weakness of both the original TenStream solver as well as our new solver, as we can clearly see that the MBE is almost always larger for these two solvers than it is for the 1D δEddington approximation. And, as we have already seen in the results for the heating rates, the lower the calling frequency, the more the MBE of the dynamic TenStream solver diverges from the MBE of the original TenStream solver. Here, however, this behavior is more severe than it was for the heating rates, since the benchmark for our new solver – the original TenStream solver – already performs a bit worse than the 1D solver. Its MBE of about $\mathrm{2.5}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ in the solar and 5 W m^{−2} in the thermal spectral range translates to an RMBE of about −0.5 % and −6 %, respectively (not shown here), compared to numbers of around 0 W m^{−2} (0 %) in the solar and $\mathrm{4}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ (5 %) in the thermal spectral range for the δEddington approximation. However, it should be noted that the almost nonexistent MBE of the δEddington approximation in the solar spectral range is primarily caused by two counteracting 3D radiative effects that happen to cancel each other out at almost exactly the solar zenith angle of 50° that we are using.
To show that, Fig. 10 visualizes the MBE for both the δEddington approximation and the original TenStream solver as a function of the solar zenith angle for the first time step of our time series. By looking at the blue line, we can see that the δEddington approximation underestimates the mean net surface irradiance for solar zenith angles below 50°, while it overestimates it for angles above 50°. This is most likely because, at low solar zenith angles, 1D solvers typically overestimate cloud shadows due to the lack of transport of diffuse radiation into these shadow regions, leading to an underestimation of the mean net surface irradiance. At high solar zenith angles, on the other hand, i.e., when the sun is close to the horizon, 1D solvers severely underestimate the size of these shadows, as they cast them directly underneath the clouds instead of at a slant angle, leading to an overestimation of the mean net surface irradiance. As we can see in Fig. 10, both of these effects cancel out at an angle of about 50°, which is the one we use, resulting in the almostperfect MBE of the δEddington approximation in the solar spectral range in Fig. 9. Despite this coincidence, however, Fig. 10 also shows us that the original TenStream solver performs slightly worse than the δEddington approximation for any zenith angle below about 50°. However, the difference in MBE between the two solvers is quite small, and the magnitudes of their respective RMBEs do not get much larger than −1 % for any angle below 50° (not shown here).
The dynamic TenStream solver, however, underestimates surface absorption in the solar spectral range even more than the original TenStream solver does, with the effect increasing the less frequently the new solver is called. Looking at the runs with calling frequencies of 10 and 30 s, however, one can clearly see that this divergence from the original TenStream MBE quickly stabilizes itself at values around $\mathrm{5}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ (−1 %) and $\mathrm{12}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ (−2 %), indicating that the bias will not grow continuously. The same behavior can be observed in the thermal spectral range, except that, similar to the behavior of the heating rates, the buildup of the bias compared to the original TenStream solver actually improves the MBE of the new solver at lower calling frequencies there. Since net surface irradiances in the thermal spectral range are negative, the positive MBE values for the original TenStream solver in Fig. 9 indicate an underestimation in the net surface irradiance, i.e., values that are not negative enough, with the dynamic TenStream solver counteracting this bias the less often it is called – although this is, of course, more of a coincidence.
Finally, coming to the upper boundary of our domain, Fig. 11 shows the temporal evolution of the MAE in the net irradiance at the top of the atmosphere (TOA) in an otherwise similar fashion to Fig. 8. Again, the incomplete solves in the dynamic TenStream solver lead to a slight divergence of the MAE of this solver (red lines) compared to the original TenStream solver (green lines) in both spectral ranges. However, this divergence remains small compared to the difference between the 3D TenStream solver and the 1D δEddington approximation, even at the lowest investigated calling frequency of 60 s. This indicates that the dynamic TenStream solver is also much better in capturing the spatial structure of the net irradiances at TOA than the traditional δEddington approximation is.
Similar to the surface, however, this does not fully apply in terms of domain averages. The corresponding temporal evolution of the MBE is shown in Fig. 12. Starting with the thermal spectral range displayed in panel (b), our new solver again shows only a comparatively small divergence from the original TenStream solver with time and performs significantly better than the δEddington approximation throughout the entire time series, regardless of the calling frequency used. In the solar spectral range, however, the original TenStream solver already performs a bit worse than the δEddington approximation does, with timeaverage MBEs of about $\mathrm{4}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ for the TenStream solver compared to $\mathrm{3}\phantom{\rule{0.125em}{0ex}}\mathrm{W}\phantom{\rule{0.125em}{0ex}}{\mathrm{m}}^{\mathrm{2}}$ for the 1D solver. More noticeably though, the incomplete solves in the dynamic TenStream solver lead to a fairly pronounced divergence in terms of the MBE from the original TenStream solver when compared to the difference between the 1D and original TenStream solvers. However, for every calling frequency investigated, this divergent behavior peaks at values that translate to RMBEs of no larger than 1.25 % (not shown here). Taking both domain boundaries into account, we can thus draw similar conclusions to those for the heating rates:

At the grid box level, our new solver determines far better net irradiances at both the surface and TOA than current 1D solvers do, even when operated at much lower calling frequencies.

Looking at domain averages, however, the incomplete solves within the dynamic TenStream solver lead to a buildup of bias with time. In terms of magnitude relative to the original TenStream solver, this bias becomes larger the lower the calling frequency and exceeds the bias of current 1D solvers, especially in the solar spectral range.
4.4 Dependence on the number of Gauß–Seidel iterations
So far, we have just looked into dynamic TenStream runs performed with only two Gauß–Seidel iterations whenever the solver is called. We focused on this computationally affordable setup as it already led to promising results. To investigate how the results presented so far change when applying more than two Gauß–Seidel iterations, we have performed nine additional runs using integer multiplies of two Gauß–Seidel iterations, i.e., up to 20 iterations per call. Following the explanation given in Sect. 3.2, we use integer multiples of 2 instead of 1 in order to ensure that information is not preferably transported into one specific direction of the domain.
In order to evaluate the improved performance of these additional runs, it is important to have a rough estimate of their additional computational cost. Therefore, we have measured the computing times of these runs exactly as we did it in Sect. 4.1 for all the other solvers. Table 2 shows these computing times relative to a calculation with two Gauß–Seidel iterations per call. As we can see, using four instead of two iterations does not double the computational cost, as there is a considerable amount of overhead that always takes the same amount of time before even starting with the Gauß–Seidel iterations, such as retrieving the TenStream coefficients from the corresponding lookup tables. However, apart from this offset, computing time scales roughly linearly with the number of Gauß–Seidel iterations, as two more iterations always add about 10 % to 20 % of the baseline cost of a calculation with two Gauß–Seidel iterations to the computing time. This fraction is smaller for the thermal spectral range because of a larger overhead due to the additional calculation of thermal emission.
Having this additional computational burden in mind, we can now have a look at Fig. 13. Panels (a) and (b) in this figure show the time and domainaverage MAE in heating rates from the dynamic TenStream solver for the shallowcumuluscloud time series as a function of the number N of Gauß–Seidel iterations. Correspondingly, the values at N=2 on the far left are the time averages of the sawtooth curves in Fig. 6 for the corresponding calling frequencies. The dashed lines represent the temporal mean MAEs for the original TenStream solver. The MAEs of the dynamic TenStream solver converge towards these dashed lines in the limit of a large number of iterations. For lower calling frequencies, this limit that the dynamic TenStream solver is converging to is larger than it is for higher calling frequencies because the solver is called less often, leading to the buildup of a large MAE with time until the solver is eventually called again, as we have seen in Fig. 6. Since the MAEs of the dynamic TenStream solver were already almost on a par with the original TenStream solver when just two Gauß–Seidel iterations were used, the MAE is already nearly converged at N=2 and does not greatly improve when using more iterations. It is only in the thermal spectral range and at lower calling frequencies that we see a slight improvement in the mean MAE when applying more iterations, especially when doubling the number of iterations from two to four.
In contrast to the MAE, however, we observed a noticeable buildup of bias with time for the dynamic TenStream solver that increases the less the solver is called. Consequently, the MBE in panels (c) and (d) of Fig. 13 starts at values that are significantly far from convergence at N=2, especially for the lowest two calling frequencies. The more Gauß–Seidel iterations we apply, the more this difference in bias compared to the original TenStream solver disappears. We can also see that the initially better bias of our new solver in the thermal spectral range at a calling frequency of 60 s quickly converges towards the bias of the original TenStream solver, as dynamic TenStream is based on this solver. To evaluate whether it is worth decreasing the magnitude of the MBE compared to the original TenStream solver by applying more iterations, let us have a look at the additional computational cost of these iterations in Table 2. Using four instead of two Gauß–Seidel iterations adds only 10 % to 20 % to the total computational time while leading to a noticeable decrease in both the MAE and (especially) the MBE. In this regard, one could even think about calling dynamic TenStream less frequently but with more Gauß–Seidel iterations. As we have seen in Sect. 4.1, using our new solver at a calling frequency of 30 s is about as expensive as calling a δEddington approximation every 10 s. Taking Table 2 into account, we can see that using N=20 instead of N=2 iterations is a bit more than twice as expensive. Hence, we could argue that a dynamic TenStream configuration with N=20 at a lower calling frequency of 60 s also imposes about the same computational cost as a δEddington approximation at a calling frequency of 10 s. However, while such a setup would lead to a better timeaverage MBE than our configuration with N=2 and a calling frequency of 30 s, it would also lead to a very noticeable increase in the mean MAE. To put it figuratively, using more iterations at a lower calling frequency reduces the bias at the expense of the spatially correct representation of the heating rates. In terms of these heating rates, we can thus draw two main conclusions:

Using more Gauß–Seidel iterations per call primarily counteracts the buildup of a bias with time, as the incomplete solves with two Gauß–Seidel iterations per call already resemble the spatial structure of the full TenStream results very accurately.

When using more Gauß–Seidel iterations but a lower calling frequency in order to maintain the total computational cost, one improves the representation of domain averages at the expense of the spatial structure of the results.
Especially at the surface, however, one should definitely think about using more than just two Gauß–Seidel iterations per call. To motivate that, Fig. 14 shows the same plots as Fig. 13 but for net surface irradiances instead of heating rates. As for the heating rates, we can see that the use of more than two Gauß–Seidel iterations per call primarily counteracts the buildup of the MBE with time. In contrast to the heating rates, however, lower calling frequencies do not impact the magnitude of the MAE as much. This indicates that, even at lower calling frequencies, the dynamic TenStream solver is able to adequately capture the spatial structure of the net surface irradiances. Consequently, using our new solver with N=20 iterations at a calling frequency of 60 s leads to better results than achieved with N=2 and a 30 s calling frequency here – both in the solar as well as in the thermal spectral range.
We can thus conclude that, even though the computationally most affordable runs using just two Gauß–Seidel iterations per call lead to promising results, it might be beneficial to use configurations involving slightly more iterations, as they add a comparatively small additional computational cost to the solver while significantly counteracting the buildup of a bias with time. The results for the net irradiance at TOA only underline the statements for the surface and are thus not shown in here.
4.5 Visualization of dynamic TenStream heatingrate fields
We want to conclude our evaluation by visually comparing the dynamic TenStream results to those calculated by the other solvers introduced in Sect. 3.2. In contrast to the previous section, we restrict ourselves to dynamic TenStream runs with just two Gauß–Seidel iterations per call here. A special focus of this comparison will be on how well dynamic TenStream performs visually in updating the radiative field depending on the calling frequency. To make this comparison as hard as possible for our new solver, we decided to look at the last time step at which the radiative field is simultaneously updated for all three calling frequencies that we consider; that is, at t=8960 s. Instead of this point in time, we could, of course, also take a look at a point in time where the different dynamic TenStream solves have just not been updated. By doing so, one would focus more on how closely notyetupdated radiative fields still resemble the benchmark result. Here, however, we want to focus more on how well our new solver performs in updating the radiative field depending on how much it has changed between two calls of the radiation scheme. From this point of view, t=8960 s is the last point in time where all three dynamic TenStream runs have just been updated. Hence, they are subject to the most incomplete solves and furthest away from the initial spinup there, increasing the chance of potential artifacts in the radiative field because the TenStream linearequation system has not been fully solved for quite a while.
Figure 15 shows xz cross sections for this point in time for the solar spectral range, with the colors indicating the heating rates along the cross section using a logarithmic color scale – except for the lowermost row in all the panels, which visualizes the net surface irradiance. In general, the bright yellow areas with correspondingly large heating rates indicate the position of clouds, while the dark areas signify shadows below the clouds. Right from the start, we can see that the largest visual differences do not occur in between the different incomplete dynamic TenStream solves but between the 1D δEddington approximation in panel (a) and the 3D solvers in panels (b)–(f). As 1D radiation does not allow for the horizontal transport of energy, in panel (a), shadows cannot be cast according to the angle of solar incidence; they are only cast right underneath the clouds. This also affects absorption at the ground, with regions of low surface absorption located right below the clouds rather than being displaced like in the MYSTIC benchmark run. We can see that the visual structure of this benchmark result is much better resembled by the TenStream solver shown in panel (b). Here, clouds are also illuminated at their sides, and horizontal transport of energy allows shadows to be cast in the direction of the solar incidence angle. However, we can see that both these shadows and the regions of low surface absorption are much more diffuse than in the MYSTIC benchmark run – although they are still a much better representation of the benchmark than the 1D solution.
Having these characteristics in mind, we can now discuss the results for the new dynamic TenStream solver, which are shown in the last row of Fig. 15. The three panels show the results for the new solver when it has been called every 10 s (panel d), 30 s (panel e) or 60 s (panel f). At first glance, we can see that the results for the new solver are very similar to those obtained by the original TenStream solver in panel (b), even when operated at the low calling frequency of 60 s. Remember that, in this run, just two Gauß–Seidel iterations towards convergence were carried out at only (8960–8000)$/\mathrm{60}=\mathrm{16}$ points in time since the spinup. Since our solver is based on the TenStream solver, this is almost the best result we could have obtained. We can see that, just like the TenStream solver, dynamic TenStream allows for full 3D transport of energy, with shadows and regions of low surface absorption being cast not just directly underneath clouds. Looking closely, one can, however, see differences between the results obtained at different calling frequencies. Panel (d), which shows the results for a calling frequency of 10 s, most accurately resembles the original TenStream result, which becomes most visible within the shadows cast by the clouds on the righthand side of the domain. They are overestimated by both lowercallingfrequency runs between about 5 and 6 km in the x direction, with heating rates being too low there compared to the original TenStream result. Also, surface absorption differs quite a bit between the different dynamic TenStream runs. The structure obtained by the original TenStream solver is again most accurately resembled by the dynamic TenStream run with a calling frequency of 10 s, whereas the surface absorption is overestimated a bit around 5 km in the x direction in the 30 s run and features a much more pronounced region of high absorption at around 2 km in the 60 s run.
Before we make a closing statement, let us also have a look at the results in the thermal spectral range shown in Fig. 16. Again, we can see that the result for the 1D δEddington approximation in panel (a) features the most differences when compared to all the other panels showing results obtained by 3D solvers. Compared to the MYSTIC benchmark run, we can see that the thermal shadows cast by the clouds are much more pronounced in 1D and not weakened in direction of the ground due to interactions with neighboring columns. This also leads to a very distinct pattern of strongly negative and not so negative netsurfaceirradiance areas at the ground in the 1D results, whereas the net surface irradiance is almost uniform in the MYSTIC benchmark result. This also provides proof for our observation in Sect. 4.3, where we have noted that the benchmark results for the net surface irradiance in the thermal spectral range should be pretty uniform in order to avoid the sawtooth pattern in the MAE time series that we typically saw when evaluating solvers at lower calling frequencies. Furthermore, we can also see that the 1D δEddington approximation is not able to consider cloudside cooling due to its lack of horizontal transport of energy, leading to much more pronounced cloud bottom warming in the 1D results than in the MYSTIC benchmark. The original TenStream solver depicted in panel (b) is able to consider almost all of these 3D effects and is therefore, once more, visually close to the MYSTIC result. Looking closely, we can, however, see that the thermal shadows are a bit more pronounced there, which also leads to regions where the net surface irradiance is a bit weaker below the clouds, in contrast to the very uniform pattern produced by the MYSTIC benchmark solver.
Comparing these results to those of our newly developed dynamic TenStream solver, we can see that it is also almost able to reproduce the results of the original TenStream solver in the thermal spectral range, even when operated at lower calling frequencies. However, the result obtained with a calling frequency of 10 s shown in panel (d) clearly resembles the original TenStream result most closely. At lower calling frequencies, we can see small artifacts, most noticeably in the form of larger or completely floating thermal shadows (the white areas in the plots) that do not seem to belong to any cloud at all, whereas they are normally placed directly underneath them. These regions are residual shadows of already dissolved clouds which the incomplete solves have not been able to get rid of yet. Evidence for this hypothesis is provided by looking at the same plot at previous time steps (not shown here). These residual shadows also influence the net surface irradiance pattern, which is most prominently visible between 1 and 2 km in panel (f). In total, these residual shadows are minor artifacts, though, as we have to consider that we were only able to visualize them by using a logarithmic color scale. And, we also have to keep in mind that, in particular, panel (e), which shows the results achieved at a calling frequency of 30 s, was obtained using a similar computational demand to performing 1D δEddington calculations every 10 s. In contrast to these results, however, the dynamic TenStream result features horizontal transport of radiative energy, resulting in much more realistically distributed heating rates and net surface irradiance patterns.
In summary, we can hence say that for both the solar and thermal spectral ranges, dynamic TenStream is able to visually almost reproduce the results obtained by the original TenStream solver, even when operated at lower calling frequencies. At those frequencies, however, minor artifacts like residual shadows are introduced. The reason for these artifacts is the incomplete solves, which can delay lowerorder 3D effects, such as feedback effects from other clouds or the surface. The term “feedback effects” refers to the fact that the 3D radiative effects of a cloud can theoretically alter the conditions determining the 3D radiative effects of any other cloud in the domain. Because these feedback effects require multiple backandforth transports of information, they cannot be fully accounted for when solving radiation incompletely. For example, incomplete solves can perfectly consider 3D radiative effects of an emerging cloud at the location of the cloud itself, but the feedback on these heating rates due to lower upwardfacing radiative fluxes from the shadow this cloud casts may be delayed to a later call of the scheme if the two Gauß–Seidel iterations that we perform per call are not sufficient to transport this feedback back to the cloud itself.
Based on the TenStream solver, we have presented a new radiativetransfer model currently designed for use at subkilometerscale horizontal resolutions that allows us to calculate 3D radiative fluxes and heating rates at a significantly increased speed by utilizing two main concepts that both rely on the idea that the radiative field does not completely change in between two calls of the scheme. First, radiation in this method is not solved from scratch every time it is called. Instead, it uses a timestepping scheme to update the radiative field based on the result from the previous radiation time step. Second, the model is based on incomplete solves, performing just a few Gauß–Seidel iterations towards convergence every time it is called.
To demonstrate the feasibility of the dynamic TenStream solver incorporating these two concepts, we implemented it in the libRadtran library for radiative transfer and applied it to 100 time steps of a shallowcumuluscloud time series prepared by Jakub and Gregor (2022). Its high temporal resolution of 10 s allowed us to investigate the effect of the calling frequency on the performance of our new solver by comparing results obtained at this high calling frequency to those retrieved at lower calling frequencies, where the radiative field changes more noticeably in between two time steps. Four different solvers were applied to this time series: besides our newly developed dynamic TenStream solver with a low number of two Gauß–Seidel iterations per call, a traditional 1D δEddington approximation was used as a worstcase benchmark that we should definitely surpass, whereas the original TenStream solver served as a bestcase benchmark – since our new solver is based on the TenStream solver, retrieving the exact same results while relying on incomplete solves would have been the best outcome that we could have expected. Simulations performed by the 3D Monte Carlo solver MYSTIC served as benchmark results for all the solvers, essentially providing a ground truth.
Using these results, we evaluated the performance of our new solver in determining heating rates and net irradiances at the upper and lower domain boundaries in terms of both speed and accuracy. In terms of speed, we saw that the dynamic TenStream solver is about 3 times slower than a traditional 1D δEddington approximation, but it delivers a noticeable increase in performance when compared to the other two 3D solvers, which are at least a factor of 5 slower. To evaluate the accuracy of the aforementioned solvers with respect to the MYSTIC benchmark run, we used two different error measures: while the mean absolute error allowed us to investigate the average error a certain solver generates for an individual grid box, the mean bias error allowed us to observe whether the domainaverage results for a certain solver deviate from the domainaverage benchmark results. In terms of heating rates, we saw that our new solver is almost able to reproduce the results of the original TenStream solver, even when operated at lower calling frequencies. At these lower calling frequencies, however, we observed that the incomplete solves in the dynamic TenStream solver lead to the buildup of a bias with time that is larger the lower the calling frequency. However, even at the lowest calling frequency investigated, this buildup stabilized itself at some point and remained lower than the bias of any 1D run at any point in time. More importantly, the timeaverage dynamic TenStream results were better in terms of both error measures when compared to 1D simulations carried out with a similar computational demand. Next, we saw that mean absolute errors in the net irradiance at the top and bottom of the domain were also significantly lower than the corresponding 1D errors, even when using lower calling frequencies. Only the bias in the net irradiances was larger than in the 1D simulations at any point in time. However, this bias could already be observed in the original TenStream results and was thus not expected to be improved by applying incomplete solves. Finally, we observed that using more than just two Gauß–Seidel iterations per call primarily counteracts the buildup of this bias with time at a relatively small computational cost.
Overall, the results of this test case clearly demonstrated the capabilities of the dynamic TenStream solver. Using a first example, we were able to show that the introduction of a timestepping scheme and the application of incomplete solves are able to retrieve heating rates and net irradiances at the upper and lower domain boundaries that are much closer to the 3D benchmark results than to currently employed 1D solvers, even when operated with a similar computational demand. These results become even more interesting when we consider recent developments in the field of another major computational bottleneck in radiativetransfer calculations, namely the number of quadrature points required to calculate accurate integrated longwave and shortwave heating rates. In our evaluation, we used the wavelength parameterization by Fu and Liou (1992, 1993), which features a total of 54 and 67 quadrature points in the solar and thermal spectral ranges, respectively (Oreopoulos et al., 2012). That is already a pretty low number considering that most models currently use the newer and more precise RRTMg parameterization (Mlawer et al., 1997; AER, 2024), which even takes a total of 112 and 140 quadrature points in the solar and thermal spectral ranges into account, respectively. However, recent developments showed that these numbers can be dramatically reduced without incurring a significant loss in precision in the calculation of both radiative fluxes and heating rates. de Mourgues et al. (2023), for example, showed that in the thermal spectral range, even 30 quadrature points are sufficient to calculate heating rates that are very similar to those obtained by a linebyline calculation. Compared to RRTMg, this is more than 4 times fewer quadrature points. Similar results have been obtained by Hogan and Matricardi (2022), who showed that just 32 quadrature points in both the solar and the thermal spectral ranges are able to produce very accurate irradiances and heating rates, with more quadrature points adding little to no further precision. These more efficient spectral parameterizations, together with the speed improvements achieved with the dynamic TenStream solver, would allow 3D radiative transfer to be accelerated towards the speed of currently employed 1D solvers, potentially allowing the use of 3D radiative transfer in NWP models for the first time ever.
Before this vision becomes reality, however, the dynamic TenStream solver needs more work. First of all, further performance tests should include multiplelayer cloud fields – e.g., shallow cumulus clouds with cirrus clouds above – as well as deep convective clouds to investigate whether two Gauß–Seidel iterations per call, as used in this paper, are still sufficient under these circumstances, as more complex cloud fields involve more radiative interaction in the vertical. Earlier simulations carried out with the dynamic TenStream solver have shown that incomplete solves can lead to “pingpong” effects in these cases, where distant grid boxes update radiative influences on each other back and forth in between different dynamic TenStream calls. These pingpong effects were vastly reduced due to the use of the Gauß–Seidel method, but it will be interesting to see whether vertically more complex cloud fields pose a greater challenge to our solver. In addition, the derivation of a rule for how many Gauß–Seidel iterations to use to ensure reliable results depending on the model setup is another main future target. In this context, it would also be interesting to investigate whether occasional full solves are a computationally feasible means of ensuring that the results of the dynamic TenStream solver do not deviate too much from those of the original TenStream solver. Additionally, we could think about deriving an even more sophisticated first guess for the incomplete solves by advecting the radiative field of the previous time step with the rest of the atmospheric fields. As we assume that the radiative field does not totally change in between two different calls of the radiation model, such a first guess should already better account for the updated position of the clouds, so the incomplete solves could primarily focus on correcting for the changed optical properties of the clouds, which could speed up convergence even more. Coupled to dynamics, it will also be very interesting to investigate how the incomplete solves in the dynamic TenStream solver influence the development of clouds. Finally, when shifting to the NWP scale, we will certainly need to consider subgridscale cloud variability by, for example, extending the TenStream lookup tables to account for the cloud fraction. And, on top of that, we will certainly have to parallelize the solver in order to make it computationally more efficient. As in the development of this new solver, we can build upon the original TenStream solver for that, as this solver is already fully parallelized (Jakub and Mayer, 2015) and can be interactively coupled to LES models (Jakub and Mayer, 2016). The native TenStream framework is especially suitable for these purposes, since the main features of the new dynamic TenStream solver – among them, the ability to perform incomplete solves, the correct calculation of 3D heating rates in this case and the speedup in convergence achieved by properly iterating through the underlying linearequation system – have already been included as options for the native TenStream solver in the meantime.
The dynamic TenStream solver presented in this paper was developed as part of the libRadtran library for radiative transfer (Emde et al., 2016; Mayer and Kylling, 2005) and can be accessed via Mayer et al. (2023) (DOI: https://doi.org/10.5281/zenodo.10288179). However, we recommend obtaining the latest version of the library from https://www.libradtran.org (libRadtran, 2024). The user manual can be found in the “doc” folder of the library. The shallowcumuluscloud time series used to evaluate the performance of the new solver has been published by Jakub and Gregor (2022) (DOI: https://doi.org/10.57970/5D0K9Q2N86), while the modifications and methods applied to it to reproduce the results of Sect. 4 are described in Sect. 3 of this paper.
RM developed the dynamic TenStream solver and carried out its evaluation with extensive support from BM and FJ. BM contributed the foundational idea of the solver and the concept behind the correct calculation of 3D heating rates, while FJ provided a lot of technical support regarding the original TenStream solver, the methods used to access the TenStream lookup tables, the iterative method applied in the solver and methods used to evaluate the performance of the new solver. CE, MM and AV took part in regular discussions regarding the development of the dynamic TenStream solver. RM prepared the manuscript with contributions from all coauthors.
The contact author has declared that none of the authors has any competing interests.
Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.
This research has been supported by the Deutsche Forschungsgemeinschaft (grant no. SFB/TRR 165 “Waves to Weather”). It was carried out within the subproject “B4 – Radiative interactions at the NWP scale and their impact on midlatitude cyclone predictability” of the Transregional Collaborative Research Center SFB/TRR 165 “Waves to Weather” (https://www.wavestoweather.de, last access: 15 March 2024).
This paper was edited by Mohamed Salim and reviewed by Peter Ukkonen and three anonymous referees.
AER: RRTM and RRTMG, http://rtweb.aer.com/rrtm_frame.html, last access: 15 March 2024. a
Anderson, G., Clough, S., Kneizys, F., Chetwynd, J., and Shettle, E.: AFGL atmospheric constituent profiles (0–120 km), Tech. Rep. AFGLTR860110, Air Force Geophys. Lab., Hanscom Air Force Base, Bedford, Mass., https://apps.dtic.mil/sti/pdfs/ADA175173.pdf (last access: 15 March 2024), 1986. a
Balay, S., Abhyankar, S., Adams, M. F., Benson, S., Brown, J., Brune, P., Buschelman, K., Constantinescu, E., Dalcin, L., Dener, A., Eijkhout, V., Faibussowitsch, J., Gropp, W. D., Hapla, V., Isaac, T., Jolivet, P., Karpeev, D., Kaushik, D., Knepley, M. G., Kong, F., Kruger, S., May, D. A., McInnes, L. C., Mills, R. T., Mitchell, L., Munson, T., Roman, J. E., Rupp, K., Sanan, P., Sarich, J., Smith, B. F., Zampini, S., Zhang, H., Zhang, H., and Zhang, J.: PETSc/TAO Users Manual, Tech. Rep. ANL21/39 – Revision 3.19, Argonne National Laboratory, https://doi.org/10.2172/1968587, 2023. a
Davis, A., Gabriel, P., Lovejoy, S., Schertzer, D., and Austin, G. L.: Discrete angle radiative transfer: 3. Numerical results and meteorological applications, J. Geophys. Res.Atmos., 95, 11729–11742, https://doi.org/10.1029/jd095id08p11729, 1990. a
de Mourgues, M., Emde, C., and Mayer, B.: Optimized Wavelength Sampling for Thermal Radiative Transfer in Numerical Weather Prediction Models, Atmosphere, 14, 332, https://doi.org/10.3390/atmos14020332, 2023. a
DWD: Operational NWP System: Model configuration upgrade of ICON, https://www.dwd.de/DE/fachnutzer/forschung_lehre/ (last access: 15 March 2024), 2021. a
DWD: Regionalmodell ICOND2,
https://www.dwd.de/DE/forschung/wettervorhersage/, last access: 15 March 2024. a
Emde, C., BurasSchnell, R., Kylling, A., Mayer, B., Gasteiger, J., Hamann, U., Kylling, J., Richter, B., Pause, C., Dowling, T., and Bugliaro, L.: The libRadtran software package for radiative transfer calculations (version 2.0.1), Geosci. Model Dev., 9, 1647–1672, https://doi.org/10.5194/gmd916472016, 2016. a, b
Fu, Q. and Liou, K. N.: On the Correlated kDistribution Method for Radiative Transfer in Nonhomogeneous Atmospheres, J. Atmos. Sci., 49, 2139–2156, https://doi.org/10.1175/15200469(1992)049<2139:OTCDMF>2.0.CO;2, 1992. a, b
Fu, Q. and Liou, K. N.: Parameterization of the Radiative Properties of Cirrus Clouds, J. Atmos. Sci., 50, 2008–2025, https://doi.org/10.1175/15200469(1993)050<2008:POTRPO>2.0.CO;2, 1993. a, b
Gabriel, P., Lovejoy, S., Davis, A., Schertzer, D., and Austin, G. L.: Discrete angle radiative transfer: 2. Renormalization approach for homogeneous and fractal clouds, J. Geophys. Res.Atmos., 95, 11717–11728, https://doi.org/10.1029/jd095id08p11717, 1990. a
Geary, R. C.: The Ratio of the Mean Deviation to the Standard Deviation as a Test of Normality, Biometrika, 27, 310–332, https://doi.org/10.2307/2332693, 1935. a
Gregor, P., Zinner, T., Jakub, F., and Mayer, B.: Validation of a camerabased intrahour irradiance nowcasting model using synthetic cloud data, Atmos. Meas. Tech., 16, 3257–3271, https://doi.org/10.5194/amt1632572023, 2023. a
Hogan, R. J. and Bozzo, A.: A Flexible and Efficient Radiation Scheme for the ECMWF Model, J. Adv. Model. Earth Sy., 10, 1990–2008, https://doi.org/10.1029/2018ms001364, 2018. a, b, c
Hogan, R. J. and Matricardi, M.: A Tool for Generating Fast kDistribution GasOptics Models for Weather and Climate Applications, J. Adv. Model. Earth Sy., 14, e2022MS003033, https://doi.org/10.1029/2022ms003033, 2022. a
Hogan, R. J., Schäfer, S. A. K., Klinger, C., Chiu, J. C., and Mayer, B.: Representing 3D cloud radiation effects in twostream schemes: 2. Matrix formulation and broadband evaluation, J. Geophys. Res.Atmos., 121, 8583–8599, https://doi.org/10.1002/2016jd024875, 2016. a
Holton, J. R. and Hakim, G. J.: Numerical Approximation of the Equations of Motion, in: An Introduction to Dynamic Meteorology, chap. 13.2, fifth edn., Elsevier, 455–464, ISBN 9780123848666, https://doi.org/10.1016/B9780123848666.000131, 2012. a
Jakub, F. and Gregor, P.: UCLALES shallow cumulus dataset with 3D cloud output data, LMU Munich, Faculty of Physics [data set], https://doi.org/10.57970/5D0K9Q2N86, 2022. a, b, c
Jakub, F. and Mayer, B.: A threedimensional parallel radiative transfer model for atmospheric heating rates for use in cloud resolving models – The TenStream solver, J. Quant. Spectrosc. Ra., 163, 63–71, https://doi.org/10.1016/j.jqsrt.2015.05.003, 2015. a, b, c, d, e, f
Jakub, F. and Mayer, B.: 3D radiative transfer in largeeddy simulations – experiences coupling the TenStream solver to the UCLALES, Geosci. Model Dev., 9, 1413–1422, https://doi.org/10.5194/gmd914132016, 2016. a, b, c
Jakub, F. and Mayer, B.: The role of 1D and 3D radiative heating in the organization of shallow cumulus convection and the formation of cloud streets, Atmos. Chem. Phys., 17, 13317–13327, https://doi.org/10.5194/acp17133172017, 2017. a
Klinger, C. and Mayer, B.: The Neighboring Column Approximation (NCA) – A fast approach for the calculation of 3D thermal heating rates in cloud resolving models, J. Quant. Spectrosc. Ra., 168, 17–28, https://doi.org/10.1016/j.jqsrt.2015.08.020, 2016. a
Klinger, C. and Mayer, B.: Neighboring Column Approximation – An Improved 3D Thermal Radiative Transfer Approximation for NonRectangular Grids, J. Adv. Model. Earth Sy., 12, e2019MS001843, https://doi.org/10.1029/2019ms001843, 2020. a
Klinger, C., Mayer, B., Jakub, F., Zinner, T., Park, S.B., and Gentine, P.: Effects of 3D thermal radiation on the development of a shallow cumulus cloud field, Atmos. Chem. Phys., 17, 5477–5500, https://doi.org/10.5194/acp1754772017, 2017. a
libRadtran: Homepage, https://www.libradtran.org, last access: 15 March 2024. a
Lovejoy, S., Davis, A., Gabriel, P., Schertzer, D., and Austin, G. L.: Discrete angle radiative transfer: 1. Scaling and similarity, universality and diffusion, J. Geophys. Res.Atmos., 95, 11699–11715, https://doi.org/10.1029/jd095id08p11699, 1990. a
Mayer, B.: Radiative transfer in the cloudy atmosphere, Eur. Physical J. Conf., 1, 75–99, https://doi.org/10.1140/epjconf/e2009009121, 2009. a, b
Mayer, B.: Erwärmungs und Abkühlungsraten – Wie wichtig ist 3DStrahlungstransport?, in: Strahlungsbilanzen, vol. 100 of Promet – Meteorologische Fortbildung, chap. 11, Deutscher Wetterdienst, 98–110, ISBN 9783881485111, https://www.dwd.de/DE/leistungen/pbfb_verlag_promet/pdf_promethefte/100_pdf.pdf?__blob=publicationFile&v=2 (last access: 15 March 2024), 2018. a
Mayer, B. and Kylling, A.: Technical note: The libRadtran software package for radiative transfer calculations  description and examples of use, Atmos. Chem. Phys., 5, 1855–1877, https://doi.org/10.5194/acp518552005, 2005. a, b
Mayer, B., Emde, C., Gasteiger, J., Kylling, A., Jakub, F., and Maier, R.: libRadtran – library for radiative transfer – version 2.0.5.1, Zenodo [code], https://doi.org/10.5281/zenodo.10288179, 2023. a
Mlawer, E. J., Taubman, S. J., Brown, P. D., Iacono, M. J., and Clough, S. A.: Radiative transfer for inhomogeneous atmospheres: RRTM, a validated correlatedk model for the longwave, J. Geophys. Res.Atmos., 102, 16663–16682, https://doi.org/10.1029/97jd00237, 1997. a
O'Hirok, W. and Gautier, C.: The Impact of Model Resolution on Differences between Independent Column Approximation and Monte Carlo Estimates of Shortwave Surface Irradiance and Atmospheric Heating Rate, J. Atmos. Sci., 62, 2939–2951, https://doi.org/10.1175/jas3519.1, 2005. a
Oreopoulos, L., Mlawer, E., Delamere, J., Shippert, T., Cole, J., Fomin, B., Iacono, M., Jin, Z., Li, J., Manners, J., Räisänen, P., Rose, F., Zhang, Y., Wilson, M. J., and Rossow, W. B.: The Continual Intercomparison of Radiation Codes: Results from Phase I, J. Geophys. Res.Atmos., 117, D06118, https://doi.org/10.1029/2011JD016821, 2012. a
Pincus, R., Barker, H. W., and Morcrette, J.J.: A fast, flexible, approximate technique for computing radiative transfer in inhomogeneous cloud fields, J. Geophys. Res.Atmos., 108, 4376, https://doi.org/10.1029/2002JD003322, 2003. a
Schäfer, S. A. K., Hogan, R. J., Klinger, C., Chiu, J. C., and Mayer, B.: Representing 3D cloud radiation effects in twostream schemes: 1. Longwave considerations and effective cloud edge length, J. Geophys. Res.Atmos., 121, 8567–8582, https://doi.org/10.1002/2016jd024876, 2016. a
Stevens, B., Moeng, C.H., Ackerman, A. S., Bretherton, C. S., Chlond, A., de Roode, S., Edwards, J., Golaz, J.C., Jiang, H., Khairoutdinov, M., Kirkpatrick, M. P., Lewellen, D. C., Lock, A., Müller, F., Stevens, D. E., Whelan, E., and Zhu, P.: Evaluation of LargeEddy Simulations via Observations of Nocturnal Marine Stratocumulus, Mon. Weather Rev., 133, 1443–1462, https://doi.org/10.1175/mwr2930.1, 2005. a
Trenberth, K. E., Fasullo, J. T., and Kiehl, J.: Earth's Global Energy Budget, B. Am. Meteorol. Soc., 90, 311–324, https://doi.org/10.1175/2008bams2634.1, 2009. a
UCAR: Namelist.input: Best Practices, https://www2.mmm.ucar.edu/wrf/users/namelist_best_prac_wrf.html, last access: 15 March 2024. a
Veerman, M. A., van Stratum, B. J. H., and van Heerwaarden, C. C.: A Case Study of Cumulus Convection Over Land in Cloud‐Resolving Simulations With a Coupled Ray Tracer, Geophys. Res. Lett., 49, e2022GL100808, https://doi.org/10.1029/2022gl100808, 2022. a, b
Wendland, H.: Iterative Methods for Solving Linear Systems, in: Numerical Linear Algebra: An Introduction, Cambridge Texts in Applied Mathematics, chap. 4, Cambridge University Press, 101–131, https://doi.org/10.1017/9781316544938.005, 2017. a