Skip to content

Commit 26846c8

Browse files
Encapsulate rrtmgp model kwargs
1 parent cacf9d7 commit 26846c8

File tree

4 files changed

+232
-280
lines changed

4 files changed

+232
-280
lines changed

src/callbacks/callbacks.jl

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -229,25 +229,20 @@ NVTX.@annotate function rrtmgp_model_callback!(integrator)
229229

230230
if !(radiation_mode isa RRTMGPI.GrayRadiation)
231231
if radiation_mode.aerosol_radiation
232-
_update_some_aerosol_conc(Y, p)
233232
ᶜΔz = Fields.Δz_field(Y.c)
234233

235-
if pkgversion(RRTMGP) <= v"0.19.2"
236-
more_aerosols = ()
237-
else
238-
more_aerosols = (
239-
(:center_dust1_column_mass_density, :DST01),
240-
(:center_dust2_column_mass_density, :DST02),
241-
(:center_dust3_column_mass_density, :DST03),
242-
(:center_dust4_column_mass_density, :DST04),
243-
(:center_dust5_column_mass_density, :DST05),
244-
(:center_ss1_column_mass_density, :SSLT01),
245-
(:center_ss2_column_mass_density, :SSLT02),
246-
(:center_ss3_column_mass_density, :SSLT03),
247-
(:center_ss4_column_mass_density, :SSLT04),
248-
(:center_ss5_column_mass_density, :SSLT05),
249-
)
250-
end
234+
more_aerosols = (
235+
(:center_dust1_column_mass_density, :DST01),
236+
(:center_dust2_column_mass_density, :DST02),
237+
(:center_dust3_column_mass_density, :DST03),
238+
(:center_dust4_column_mass_density, :DST04),
239+
(:center_dust5_column_mass_density, :DST05),
240+
(:center_ss1_column_mass_density, :SSLT01),
241+
(:center_ss2_column_mass_density, :SSLT02),
242+
(:center_ss3_column_mass_density, :SSLT03),
243+
(:center_ss4_column_mass_density, :SSLT04),
244+
(:center_ss5_column_mass_density, :SSLT05),
245+
)
251246

252247
aerosol_names_pair = [
253248
more_aerosols...,

src/compat.jl

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -97,46 +97,3 @@ else
9797
report_walltime = ClimaUtilities.OnlineLogging.report_walltime
9898
end
9999

100-
101-
if pkgversion(RRTMGP) <= v"0.19.2"
102-
function _update_some_aerosol_conc(Y, p)
103-
ᶜΔz = Fields.Δz_field(Y.c)
104-
rrtmgp_model = p.radiation.rrtmgp_model
105-
ᶜaero_conc = Fields.array2field(
106-
rrtmgp_model.center_dust_column_mass_density,
107-
axes(Y.c),
108-
)
109-
@. ᶜaero_conc = 0
110-
for prescribed_aerosol_name in [:DST01, :DST02, :DST03, :DST04]
111-
if prescribed_aerosol_name in
112-
propertynames(p.tracers.prescribed_aerosols_field)
113-
aerosol_field = getproperty(
114-
p.tracers.prescribed_aerosols_field,
115-
prescribed_aerosol_name,
116-
)
117-
@. ᶜaero_conc += aerosol_field * Y.c.ρ * ᶜΔz
118-
end
119-
end
120-
121-
ᶜaero_conc = Fields.array2field(
122-
rrtmgp_model.center_ss_column_mass_density,
123-
axes(Y.c),
124-
)
125-
@. ᶜaero_conc = 0
126-
for prescribed_aerosol_name in [:SSLT01, :SSLT02, :SSLT03, :SSLT04]
127-
if prescribed_aerosol_name in
128-
propertynames(p.tracers.prescribed_aerosols_field)
129-
aerosol_field = getproperty(
130-
p.tracers.prescribed_aerosols_field,
131-
prescribed_aerosol_name,
132-
)
133-
@. ᶜaero_conc += aerosol_field * Y.c.ρ * ᶜΔz
134-
end
135-
end
136-
return nothing
137-
end
138-
else
139-
function _update_some_aerosol_conc(_, _)
140-
return nothing
141-
end
142-
end

src/parameterized_tendencies/radiation/RRTMGPInterface.jl

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -813,46 +813,32 @@ function _RRTMGPModel(
813813
aero_size = DA{FT}(undef, n_aerosol_sizes, nlay, ncol)
814814
aero_mass = DA{FT}(undef, n_aerosols, nlay, ncol)
815815

816-
if pkgversion(RRTMGP) <= v"0.19.2"
817-
aerosol_size_names = ["dust", "ss"]
818-
aerosol_names =
819-
["dust", "ss", "so4", "bcpi", "bcpo", "ocpi", "ocpo"]
820-
for (i, name) in enumerate(aerosol_size_names)
816+
aerosol_names = [
817+
"dust1",
818+
"ss1",
819+
"so4",
820+
"bcpi",
821+
"bcpo",
822+
"ocpi",
823+
"ocpo",
824+
"dust2",
825+
"dust3",
826+
"dust4",
827+
"dust5",
828+
"ss2",
829+
"ss3",
830+
"ss4",
831+
"ss5",
832+
]
833+
for (i, name) in enumerate(aerosol_names)
834+
if occursin("dust", name) || occursin("ss", name)
821835
set_and_save!(
822836
view(aero_size, i, :, :),
823837
"center_$(name)_radius",
824838
t...,
825839
dict,
826840
)
827841
end
828-
else
829-
aerosol_names = [
830-
"dust1",
831-
"ss1",
832-
"so4",
833-
"bcpi",
834-
"bcpo",
835-
"ocpi",
836-
"ocpo",
837-
"dust2",
838-
"dust3",
839-
"dust4",
840-
"dust5",
841-
"ss2",
842-
"ss3",
843-
"ss4",
844-
"ss5",
845-
]
846-
for (i, name) in enumerate(aerosol_names)
847-
if occursin("dust", name) || occursin("ss", name)
848-
set_and_save!(
849-
view(aero_size, i, :, :),
850-
"center_$(name)_radius",
851-
t...,
852-
dict,
853-
)
854-
end
855-
end
856842
end
857843
for (i, name) in enumerate(aerosol_names)
858844
set_and_save!(

0 commit comments

Comments
 (0)