Skip to content

Commit 5aa69a7

Browse files
authored
Merge pull request #3660 from CliMA/aj/prescribe_N_in_r_eff
Prescribe N in r_eff liquid clouds
2 parents b98b169 + 1b3ab8c commit 5aa69a7

File tree

4 files changed

+25
-8
lines changed

4 files changed

+25
-8
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ ClimaDiagnostics = "0.2.12"
4848
ClimaParams = "0.10.19"
4949
ClimaTimeSteppers = "0.8.2"
5050
ClimaUtilities = "0.1.22"
51-
CloudMicrophysics = "0.22.8"
51+
CloudMicrophysics = "0.22.9"
5252
Dates = "1"
5353
DiffEqBase = "6.145"
5454
FastGaussQuadrature = "0.5, 1"

reproducibility_tests/ref_counter.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
220
1+
221
22

33
# **README**
44
#
@@ -20,6 +20,9 @@
2020

2121

2222
#=
23+
221
24+
- Change the way cloud liquid effective radius is computed for radiation
25+
2326
220
2427
- Split out cached variables that should be treated implicitly, so that all
2528
other cached variables are no longer updated by the implicit solver

src/callbacks/callbacks.jl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,14 @@ NVTX.@annotate function rrtmgp_model_callback!(integrator)
208208
# RRTMGP needs effective radius in microns
209209
@. ᶜreliq = ifelse(
210210
cloud_liquid_water_content > FT(0),
211-
CM.CloudDiagnostics.effective_radius_const(cmc.liquid) *
212-
m_to_um_factor,
211+
CM.CloudDiagnostics.effective_radius_Liu_Hallet_97(
212+
cmc.liquid,
213+
Y.c.ρ,
214+
cloud_liquid_water_content / max(eps(FT), cloud_fraction),
215+
cmc.N_cloud_liquid_droplets,
216+
FT(0),
217+
FT(0),
218+
) * m_to_um_factor,
213219
FT(0),
214220
)
215221
@. ᶜreice = ifelse(

src/parameters/create_parameters.jl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,18 @@ atmos_name_map = (;
107107
:optics_lookup_temperature_max => :optics_lookup_temperature_max,
108108
)
109109

110-
cloud_parameters(FT_or_toml) = (;
111-
liquid = CM.Parameters.CloudLiquid(FT_or_toml),
112-
ice = CM.Parameters.CloudIce(FT_or_toml),
113-
Ch2022 = CM.Parameters.Chen2022VelType(FT_or_toml),
110+
cloud_parameters(::Type{FT}) where {FT <: AbstractFloat} =
111+
cloud_parameters(CP.create_toml_dict(FT))
112+
113+
cloud_parameters(toml_dict::CP.AbstractTOMLDict) = (;
114+
liquid = CM.Parameters.CloudLiquid(toml_dict),
115+
ice = CM.Parameters.CloudIce(toml_dict),
116+
Ch2022 = CM.Parameters.Chen2022VelType(toml_dict),
117+
N_cloud_liquid_droplets = CP.get_parameter_values(
118+
toml_dict,
119+
"prescribed_cloud_droplet_number_concentration",
120+
"ClimaAtmos",
121+
).prescribed_cloud_droplet_number_concentration,
114122
)
115123

116124
microphys_1m_parameters(::Type{FT}) where {FT <: AbstractFloat} =

0 commit comments

Comments
 (0)