Cumulus#

class abcmodel.atmos.clouds.cumulus.CumulusState(cc_frac=<factory>, cc_mf=<factory>, cc_qf=<factory>, cl_trans=<factory>, q2_h=<factory>, top_CO22=<factory>, wCO2M=<factory>)[source]#

Bases: AbstractCloudState

Standard cumulus state.

cc_frac: Array#

Cloud core fraction [-], range 0 to 1.

cc_mf: Array#

Cloud core mass flux [m/s].

cc_qf: Array#

Cloud core moisture flux [kg/kg/s].

cl_trans: Array#

Cloud layer transmittance [-], range 0 to 1.

q2_h: Array#

Humidity variance at mixed-layer top [kg²/kg²].

top_CO22: Array#

CO2 variance at mixed-layer top [ppm²].

wCO2M: Array#

CO2 mass flux [mgC/m²/s].

class abcmodel.atmos.clouds.cumulus.CumulusModel(tcc_cc=2.0, tcc_trans=0.6)[source]#

Bases: AbstractCloudModel[CumulusState]

Standard cumulus cloud model based on Neggers et al. (2006/7).

This model calculates shallow cumulus convection properties using a variance-based approach to determine cloud core fraction and associated mass fluxes. The model characterizes turbulent fluctuations in the mixed layer that lead to cloud formation. It quantifies the variance of humidity and CO2 at the mixed-layer top and uses this to determine what fraction reaches saturation.

Parameters:
  • tcc_cc (float) – ratio of total cloud cove to core cloud fraction [-], greater or equal to 1. Default is 2.0.

  • tcc_trans (float) – mean transmittance of cloud cover [-], range 0 to 1. Default is 0.6.

init_state()[source]#

Initialize the model state.

Returns:

The initial cloud state.

run(state)[source]#

Run the model.

Parameters:

state (AbstractCoupledState)

Returns:

The updated cloud state.

compute_q2_h(cc_qf, wthetav, wqe, dq, h_abl, dz_h, wstar)[source]#

Compute mixed-layer top relative humidity variance.

Notes

Based on Neggers et al. (2006/7). The humidity variance \(\sigma_{q,h}^2\) is

\[\sigma_{q,h}^2 = -\frac{(\overline{w'q'}_e + \overline{w'q'}_{cc}) \Delta q h}{\delta z_h w_*}\]
compute_top_CO22(wthetav, h_abl, dz_h, wstar, wCO2e, wCO2M, deltaCO2)[source]#

Compute mixed-layer top CO2 variance.

Notes

Based on Neggers et al. (2006/7). The CO2 variance \(\sigma_{CO2,h}^2\) is

\[\sigma_{CO2,h}^2 = -\frac{(\overline{w'CO_2'}_e + \overline{w'CO_2'}_{M}) \Delta CO_2 h}{\delta z_h w_*}\]
compute_cc_frac(q, top_T, top_p, q2_h)[source]#

Compute cloud core fraction using the arctangent formulation.

Notes

The cloud core fraction \(a_{cc}\) is given by

\[a_{cc} = 0.5 + 0.36 \arctan\left( 1.55 \frac{q - q_{sat}(T_{top}, p_{top})}{\sigma_{q,h}} \right)\]
compute_cc_mf(cc_frac, wstar)[source]#

Compute cloud core mass flux.

Notes

The cloud core mass flux \(M_{cc}\) is

\[M_{cc} = a_{cc} w_*\]
compute_cc_qf(cc_mf, q2_h)[source]#

Compute cloud core moisture flux.

Notes

The cloud core moisture flux \(\overline{w'q'}_{cc}\) is

\[\overline{w'q'}_{cc} = M_{cc} \sigma_{q,h}\]
compute_wCO2M(cc_mf, top_CO22, deltaCO2)[source]#

Compute CO2 mass flux.

Notes

The CO2 mass flux \(\overline{w'CO_2'}_{M}\) is

\[\overline{w'CO_2'}_{M} = M_{cc} \sigma_{CO2,h}\]

This is only computed if the mixed-layer top jump is negative.

compute_cl_trans(cc_frac)[source]#

Compute cloud layer transmittance, with maximum total cloud cover equal to 1.

Notes

The cloud layer transmittance \(\tau_{cl}\) is

\[\tau_{cl} = 1 - \text{TCC} (1 - \tau_{cloud})\]

where \(\text{TCC} = \min(a_{cc} \cdot \text{ratio}, 1)\) is the total cloud cover.