Skip to content

Commit fd8e5bf

Browse files
authored
Additions to CloudToppedMixedLayerModels (#12)
* add analytic LWP expression as cloud thickness squared * introduce a bit more parameters for cloud height * mass rename CLT to RCT * fix height variables and confusion for z_lcl, z_cb, etc. * LWP-dependnt emissivty * add linear and exact LWP; should never use exact! * LWP-dependent cloud albedo! * correct docs of new cloud functions * remove cloud fraction option from cloud longwave * restore option for cloud fraction in cooling * add limiter to relaxation cloud fraction based on CLT * add clamped linear process * make cloud limiter use clamped leanr process; make cloud albedo paramet * add liquid water path process * correct scope for c_kappa * try set parameter convenience function * add try set parameter to the docs * rename ΔF -> ΔF_s; add ΔF_q * also replace notation in radiation * add default equation for DF_Q * bump changelog * fix docs * clarity in s+ docstring
1 parent 04c0b3a commit fd8e5bf

File tree

15 files changed

+353
-157
lines changed

15 files changed

+353
-157
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
# v1.1
2+
3+
## `CloudToppedMixedLayerModel`
4+
5+
- Additional function for calculating the liquid water path analytically, scaling with the cloud thickness squared. Use `liquid_water_path` for the process.
6+
- Introduced more height-related variables to make codebase more clear. In particular, now CLT corresponds to the physical cloud layer thickness in meters. A new variable RCT (Relative Cloud Thickness) corresponds to what CLT used to be, i.e., RCT = CLT/`z_b`. The variables `z_cb, z_ct` for cloud base and top height are computed explicitly now, and the CLT, RCT variables are automatically generated by default equations. The defaults of all equations and variable connections are so that there is no breaking change with these new variables. But if you were using directly `CLT` then you need to adjust it to `RCT`.
7+
- Function `cloud_layer_thickness` replaced by `cloud_base_height` which clarifies better what each variable means and how it is computed.
8+
- Implement LWP-dependent emissivity for clouds.
9+
- Implemented LWP-dependent albedo for clouds. Added function `cloud_albedo` and added variable `α_C` that can be scaled by cloud fraction or not. Default settings for everything leave things as they were in previous version.
10+
- Added a new option when deciding the relaxation cloud fraction that limits it based on CLT so that too thin clouds also have small cloud fraction.
11+
12+
## General
13+
14+
- Added a new advanced process: `ClampedLinearProcess`.
15+
- Propagate dispatch of `has_symbolic_var` called with a dynamical system.
16+
- New function `try_set_parameter!`.
17+
118
# v1
219

320
Changelog of ConceptualClimateModels.jl is kept w.r.t. v1.

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ConceptualClimateModels"
22
uuid = "3e640dcb-3446-4ed7-aadb-0366b77312ec"
33
authors = ["Datseris <datseris.george@gmail.com>"]
4-
version = "1.0.2"
4+
version = "1.1.0"
55

66
[deps]
77
DynamicalSystemsBase = "6e36e845-645a-534a-86f2-f5d4aa5a06b4"

docs/references.bib

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,49 @@ @article{North1981
1010
volume = {19},
1111
year = {1981}
1212
}
13+
@article{Stephens1978,
14+
author = {Stephens, G. L.},
15+
doi = {10.1175/1520-0469(1978)035<2123:RPIEWC>2.0.CO;2},
16+
file = {:C\:/Users/gd419/Downloads/atsc-1520-0469_1978_035_2123_rpiewc_2_0_co_2.pdf:pdf},
17+
issn = {0022-4928},
18+
journal = {Journal of the Atmospheric Sciences},
19+
mendeley-groups = {Clouds & Circulation/Optical Properties},
20+
month = {nov},
21+
number = {11},
22+
pages = {2123--2132},
23+
title = {{Radiation Profiles in Extended Water Clouds. II: Parameterization Schemes}},
24+
url = {http://journals.ametsoc.org/doi/10.1175/1520-0469(1978)035%3C2123:RPIEWC%3E2.0.CO;2},
25+
volume = {35},
26+
year = {1978}
27+
}
28+
@article{Lacis1974,
29+
author = {Lacis, Andrew A. and Hansen, James},
30+
doi = {10.1175/1520-0469(1974)031<0118:APFTAO>2.0.CO;2},
31+
issn = {0022-4928},
32+
journal = {Journal of the Atmospheric Sciences},
33+
month = {jan},
34+
number = {1},
35+
pages = {118--133},
36+
title = {{A Parameterization for the Absorption of Solar Radiation in the Earth's Atmosphere}},
37+
url = {http://journals.ametsoc.org/doi/10.1175/1520-0469(1974)031%3C0118:APFTAO%3E2.0.CO;2},
38+
volume = {31},
39+
year = {1974}
40+
}
41+
42+
@article{Datseris2021,
43+
author = {Datseris, George and Stevens, Bjorn},
44+
doi = {10.1029/2021av000440},
45+
issn = {2576-604X},
46+
journal = {AGU Advances},
47+
mendeley-groups = {Albedo (Global) & Symmetry,Clouds & Circulation/Albedo/fraction},
48+
month = {sep},
49+
number = {3},
50+
publisher = {American Geophysical Union (AGU)},
51+
title = {{Earth's Albedo and Its Symmetry}},
52+
volume = {2},
53+
year = {2021}
54+
}
55+
1356

1457
@article{Bastiaansen2023,
1558
abstract = {Climate response metrics are used to quantify the Earth's climate response to anthropogenic changes of atmospheric CO2. Equilibrium climate sensitivity (ECS) is one such metric that measures the equilibrium response to CO2 doubling. However, both in their estimation and their usage, such metrics make assumptions on the linearity of climate response, although it is known that, especially for larger forcing levels, response can be nonlinear. Such nonlinear responses may become visible immediately in response to a larger perturbation, or may only become apparent after a long transient period. In this paper, we illustrate some potential problems and caveats when estimating ECS from transient simulations. We highlight ways that very slow time scales may lead to poor estimation of ECS even if there is seemingly good fit to linear response over moderate time scales. Moreover, such slow processes might lead to late abrupt responses (late tipping points) associated with a system's nonlinearities. We illustrate these ideas using simulations on a global energy balance model with dynamic albedo. We also discuss the implications for estimating ECS for global climate models, highlighting that it is likely to remain difficult to make definitive statements about the simulation times needed to reach an equilibrium.},
@@ -265,7 +308,6 @@ @article{Huang2014
265308
abstract = {Line‐by‐line radiative transfer computations show that the logarithmic dependence of radiative forcing on gas concentration not only applies to broadband irradiation fluxes such as in the well‐known case of the CO 2 forcing, but also applies to the spectral radiance change due to both CO 2 and other gases, such as H 2 O. The logarithmic relationship holds for monochromatic radiance requires an explanation beyond the conventional ideas based on the spectroscopic features of the gas absorption lines. We show that the phenomenon can be explained by an Emission Layer Displacement Model, which describes the radiance response to gas perturbation under normal atmospheric conditions such as temperature linearly varying with height and gas concentration exponentially decaying with height.},
266309
author = {Huang, Yi and {Bani Shahabadi}, Maziar},
267310
doi = {10.1002/2014JD022466},
268-
file = {:C\:/Users/datse/Documents/Mendeley Desktop/Huang, Bani Shahabadi/Huang, Bani Shahabadi - 2014.pdf:pdf},
269311
issn = {2169-897X},
270312
journal = {Journal of Geophysical Research: Atmospheres},
271313
keywords = {10.1002/2014JD022466 and radiative forcing,CO2,logarithmic,radiative transfer,spectroscopy,water vapor},
@@ -414,7 +456,6 @@ @article{Bretherton1997
414456
abstract = {Decoupling during the "Lagrangian" evolution of a cloud-topped boundary layer advected equatorward by the trade winds in an idealized eastern subtropical ocean is studied using a mixed-layer model (MLM). The sea surface temperature is gradually warmed while the free tropospheric sounding remains unchanged, causing the boundary layer to deepen, the surface relative humidity to decrease, and surface latent heat fluxes to increase. Diurnally averaged insolation is used. For entrainment closures in which entrainment rate is related to a large-eddy convective velocity scale w*, the MLM predicts an increasingly prominent layer of negative buoyancy fluxes below cloud base as the sea surface temperature warms. Decoupling of the mixed layer can be inferred when the MLM-predicted negative buoyancy fluxes become too large for the internal circulations to sustain. The authors show that decoupling is mainly driven by an increasing ratio of the surface latent heat flux to the net radiative cooling in the cloud, and derive a decoupling criterion based on this ratio. Other effects such as drizzle, the vertical distribution of radiative cooling in the cloud, and sensible heat fluxes, also affect decoupling but are shown to be less important in typical subtropical boundary layers. A comparison of MLM results with a companion numerical study with a cloud-resolving model shows that the decoupling process is similar and the same decoupling criterion applies. A regional analysis of decoupling using Lagrangian trajectories based on summertime northeast Pacific climatology predicts decoupling throughout the subtropical stratocumulus region except in coastal zones where the boundary layer is under 750 m deep. A "flux-partitioning" entrainment closure, in which the entrainment rate is chosen to maintain a specified ratio of some measure of negative subcloud buoyancy fluxes to positive buoyancy fluxes within the cloud and near the surface, was also considered. By construction, such an MLM never predicts its own breakdown by decoupling. The changed entrainment closure had only a minor influence on the boundary layer evolution and entrainment rate. Instead, the crucial impact of the entrainment closure is on predicting when and where the mixed-layer assumption will break down due to decoupling.},
415457
author = {Bretherton, Christopher S. and Wyant, Matthew C.},
416458
doi = {10.1175/1520-0469(1997)054<0148:MTLTSA>2.0.CO;2},
417-
file = {:C\:/Users/gd419/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Bretherton, Wyant - 1997 - Moisture transport, lower-tropospheric stability, and decoupling of cloud-topped boundary layers.pdf:pdf},
418459
issn = {00224928},
419460
journal = {Journal of the Atmospheric Sciences},
420461
mendeley-groups = {Clouds & Circulation/Theory,Clouds & Circulation/SratoToCumulus},
@@ -428,7 +469,6 @@ @article{Stevens2006
428469
abstract = {We review bulk representations of tropical and subtropical maritime atmospheric boundary layers. Three types of bulk representations are studied in detail: stratocumulus topped mixed layers, trade-wind layers, and sub-cloud mixed layers. Through the development of a consistent description of these disparate regimes, connections among their varied representations are emphasized, as well as their relation to regions of deeper convection. New results relating to the equilibrium mass flux and cloud fraction in the trade winds; the ability of bulk models to represent qualitatively major cloud regimes; and the relationship amongst different bulk representations of the surface layer are presented. Throughout we emphasize the identification of consistent and physically based mixing and cloud regime rules for use in intermediate complexity models of the tropical climate, which in turn can be used to study cloud and dynamical interactions on larger scales. {\textcopyright} Springer-Verlag 2006.},
429470
author = {Stevens, Bjorn},
430471
doi = {10.1007/s00162-006-0032-z},
431-
file = {:C\:/Users/gd419/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Stevens - 2006 - Bulk boundary-layer concepts for simplified models of tropical dynamics.pdf:pdf},
432472
issn = {09354964},
433473
journal = {Theoretical and Computational Fluid Dynamics},
434474
keywords = {Atmospheric boundary layer,Cumulus mass flux,Entrainment},
@@ -442,7 +482,6 @@ @article{Stevens2006
442482
@article{RandalSuarez1984,
443483
author = {Randall, David A. and Suarez, Max J.},
444484
doi = {10.1175/1520-0469(1984)041<3052:OTDOSF>2.0.CO;2},
445-
file = {:C\:/Users/gd419/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Randall, Suarez - 1984 - On the Dynamics of Stratocumulus Formation and Dissipation(2).pdf:pdf},
446485
issn = {0022-4928},
447486
journal = {Journal of the Atmospheric Sciences},
448487
mendeley-groups = {Clouds & Circulation/SratoToCumulus},
@@ -457,7 +496,6 @@ @article{RandalSuarez1984
457496
@misc{Singer2023,
458497
author = {Singer, Clare E and Schneider, Tapio},
459498
doi = {10.22541/essoar.168167352.24863390/v1},
460-
file = {:C\:/Users/gd419/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Singer, Schneider - 2023 - Stratocumulus-cumulus transition explained by bulk boundary layer theory.pdf:pdf},
461499
institution = {Authorea, Inc.},
462500
mendeley-groups = {Clouds & Circulation/Multistability/Tipping,Clouds & Circulation/Theory,Clouds & Circulation/SratoToCumulus},
463501
month = {apr},
@@ -469,7 +507,6 @@ @misc{Singer2023a
469507
abstract = {Stratocumulus clouds cover 20% of subtropical oceans and strongly cool the Earth by reflecting incoming shortwave radiation. Because of their small dynamical scales and their sensitivity to changing meteorological conditions, the response of stratocumulus clouds to climate change is one of the leading uncertainties in climate modeling. Recent work has made significant progress constraining this feedback using high-resolution large eddy simulations (LES) and satellite observations. Here we provide complementary constraints from a theoretical perspective, using a bulk boundary layer model to calculate the response of stratocumulus clouds to increasing CO 2. We extend the bulk model presented in Singer and Schneider (2023) by coupling it to a slab ocean to allow for feedbacks between cloud cover and surface warming and use ensemble Kalman inversion to calibrate model parameters. We conduct climate change experiments, forcing the bulk model with increasing CO 2 , and compare the cloud response to results from LES in Schneider et al. (2019). Past a critical CO 2 value, the cloud layer decouples from the surface, the clouds break up, and cloud fraction decreases to a shallow cumulus-like state. Cloud fraction shows hysteresis behavior, where the system remains in a low cloud fraction state even as CO 2 is decreased significantly past the breakup threshold. The hysteresis behavior is robust, but the critical CO 2 value is sensitive to parameters and assumptions of the bulk model. We show that surface warming and water vapor feedback are two important aspects of the breakup; without them, the critical CO 2 threshold for breakup is much larger. 5 SIGNIFICANCE STATEMENT: The purpose of this study, and the companion paper Singer and Schneider (2023), is to develop a simple model to explain mechanisms controlling stratocumulus-cumulus transitions. In this second paper, we describe the extended bulk model coupled to a slab ocean that is forced only with a prescribed CO 2 concentration. We calibrate key parameters of this model based on high-resolution simulations. The simple model, like the high-resolution simulations, shows that stratocumulus clouds break up at very high CO 2 concentrations and that the boundary layer exhibits hysteresis, remaining in a cumulus-like state until CO 2 is reduced significantly past the breakup threshold. We conclude by showing a series of mechanism-denial experiments that highlight the importance of surface temperature and water vapor feedbacks on the stratocumulus breakup.},
470508
author = {Singer, Clare E and Schneider, Tapio},
471509
doi = {10.22541/essoar.168167204.45220772/v1},
472-
file = {:C\:/Users/gd419/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Singer, Schneider - 2023 - CO 2-driven stratocumulus cloud breakup in a bulk boundary layer model.pdf:pdf},
473510
institution = {Authorea, Inc.},
474511
mendeley-groups = {Clouds & Circulation/Multistability/Tipping,Clouds & Circulation/Theory,Clouds & Circulation/SratoToCumulus},
475512
month = {apr},

docs/src/examples/ctmlm.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ eqs = [
2222
CTMLM.s₀ ~ CTMLM.s₊ - 12.5,
2323
CTMLM.ρ₀ ~ 1,
2424
CTMLM.q₀ ~ CTMLM.q_saturation(288.96 + 1.25),
25-
CTMLM.ΔF ~ 40.0
25+
CTMLM.ΔF_s ~ 40.0
2626
]
2727
```
2828

@@ -50,7 +50,7 @@ leading to a steady state with height ``z_b`` (``h_\infty`` in [Stevens2006](@ci
5050

5151
```@example MAIN
5252
Δs = CTMLM.s₊ - CTMLM.s₀ # symbolic variable not existing in the graph of the `ds`
53-
σ = observe_state(ds, CTMLM.V * Δs / CTMLM.ΔF * cₚ)
53+
σ = observe_state(ds, CTMLM.V * Δs / CTMLM.ΔF_s * cₚ)
5454
```
5555
and we get the same value (note multiplication by `cₚ`, because `s` is in units of K).
5656

@@ -76,9 +76,9 @@ eqs = [
7676
## Cloud stuff
7777
CTMLM.cf_dynamic(),
7878
CTMLM.decoupling_variable(),
79-
CTMLM.cloud_layer_thickness(:Bolton1980),
79+
CTMLM.cloud_base_height(:Bolton1980),
8080
CTMLM.CTRC ~ 10 + 40*CTMLM.C, # cloud top radiative cooling
81-
CTMLM.ΔF ~ CTMLM.CTRC, # same equation
81+
CTMLM.ΔF_s ~ CTMLM.CTRC, # same equation
8282
## rest the same
8383
CTMLM.s₊ ~ 301200.0/cₚ,
8484
CTMLM.q₊ ~ 1.56,
@@ -115,9 +115,9 @@ eqs = [
115115
## Cloud stuff
116116
CTMLM.cf_dynamic(),
117117
CTMLM.decoupling_variable(),
118-
CTMLM.cloud_layer_thickness(:Bolton1980),
118+
CTMLM.cloud_base_height(:Bolton1980),
119119
CTMLM.CTRC ~ 10 + 40*CTMLM.C, # cloud top radiative cooling
120-
CTMLM.ΔF ~ CTMLM.CTRC, # same equation
120+
CTMLM.ΔF_s ~ CTMLM.CTRC, # same equation
121121
## Usage of SST
122122
CTMLM.s₀ ~ SST,
123123
CTMLM.q₀ ~ CTMLM.q_saturation(SST),
@@ -140,9 +140,9 @@ To perform global continuation we need to create an attractor mapper, which we c
140140
```@example MAIN
141141
142142
grid = (
143-
(0:100.0:3000), # height
144-
(270:5.0:330), # static energy
145143
(1:1.0:25), # specific humidity
144+
(270:5.0:330), # static energy
145+
(0:100.0:3000), # height
146146
(0:0.1:1), # cloud fraction
147147
)
148148
@@ -151,7 +151,7 @@ sampler, = statespace_sampler(grid)
151151
mapper = AttractorsViaRecurrences(ds, grid)
152152
ascm = AttractorSeedContinueMatch(mapper)
153153
154-
fs = basins_fractions(mapper, sampler)
154+
fs = basins_fractions(mapper, sampler; show_progress = false)
155155
attractors = extract_attractors(mapper)
156156
```
157157

@@ -160,7 +160,7 @@ with the `sampler, mapper, ascm` data structures in order, we can easily now run
160160
```@example MAIN
161161
prange = 290:1:310
162162
pidx = :SST
163-
fractions_cont, attractors_cont = global_continuation(ascm, prange, pidx, sampler)
163+
fractions_cont, attractors_cont = global_continuation(ascm, prange, pidx, sampler; show_progress = false)
164164
attractors_cont
165165
```
166166

@@ -170,10 +170,10 @@ if you are not sure what the output means, no worries, just have a look at the A
170170
using CairoMakie
171171
172172
# cloud fraction and height values of last point on the attractor
173-
values = [A -> A[end][4], A -> A[end][1]]
173+
varvalues = [A -> A[end][4], A -> A[end][3]]
174174
175175
fig = plot_basins_attractors_curves(
176-
fractions_cont, attractors_cont, values, prange,
176+
fractions_cont, attractors_cont, varvalues, prange,
177177
)
178178
content(fig[2,1]).ylabel = "C"
179179
content(fig[3,1]).ylabel = "z_b"
@@ -182,4 +182,4 @@ fig
182182

183183
we see for our ad hoc parameterizations, the dynamical system has no stable states for SST > 297. Before that cloud fraction decreases very fast from a Stratocumulus state to a Cumulus one.
184184

185-
The model diverges due to the definition of the entrainment velocity (which is proportional to `ΔF/Δ₊s`) in combination with a fixed `s₊`: the model reaches a state where `Δ₊s` is so small that height increases unnaturally well beyond the state space tessellation we defined.
185+
The model diverges due to the definition of the entrainment velocity (which is proportional to `ΔF_s/Δ₊s`) in combination with a fixed `s₊`: the model reaches a state where `Δ₊s` is so small that height increases unnaturally well beyond the state space tessellation we defined.

docs/src/submodules/ctmlm.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ CloudToppedMixedLayerModel.sst_dynamic
2323
CloudToppedMixedLayerModel.cf_dynamic
2424
CloudToppedMixedLayerModel.cloud_emission_temperature
2525
CloudToppedMixedLayerModel.cloud_emissivity
26-
CloudToppedMixedLayerModel.cloud_layer_thickness
26+
CloudToppedMixedLayerModel.cloud_albedo
27+
CloudToppedMixedLayerModel.cloud_base_height
28+
CloudToppedMixedLayerModel.liquid_water_path
2729
CloudToppedMixedLayerModel.decoupling_variable
2830
CloudToppedMixedLayerModel.decoupling_ratios
2931
```

docs/src/tutorial.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ plausible_ic_sampler
423423
plausible_grid
424424
dynamical_system_summary
425425
named_current_parameters
426+
try_set_parameter!
426427
```
427428

428429
## API Reference

0 commit comments

Comments
 (0)