@@ -90,7 +90,7 @@ function edmfx_sgs_mass_flux_tendency!(
9090 for j in 1 : n
9191 @. ᶠu³_diff = ᶠu³ʲs.:($$ j) - ᶠu³
9292 @. ᶜa_scalar =
93- (Y. c. sgsʲs.:($$ j). q_tot - ᶜspecific . q_tot ) *
93+ (Y. c. sgsʲs.:($$ j). q_tot - specific (Y . c . ρq_tot, Y . c . ρ) ) *
9494 draft_area (Y. c. sgsʲs.:($$ j). ρa, ᶜρʲs.:($$ j))
9595 vtt = vertical_transport (
9696 ᶜρʲs.:($ j),
@@ -103,7 +103,8 @@ function edmfx_sgs_mass_flux_tendency!(
103103 end
104104 # Add the environment fluxes
105105 @. ᶠu³_diff = ᶠu³⁰ - ᶠu³
106- @. ᶜa_scalar = (ᶜq_tot⁰ - ᶜspecific. q_tot) * draft_area (ᶜρa⁰, ᶜρ⁰)
106+ @. ᶜa_scalar =
107+ (ᶜq_tot⁰ - specific (Y. c. ρq_tot, Y. c. ρ)) * draft_area (ᶜρa⁰, ᶜρ⁰)
107108 vtt = vertical_transport (
108109 ᶜρ⁰,
109110 ᶠu³_diff,
@@ -123,7 +124,7 @@ function edmfx_sgs_mass_flux_tendency!(
123124 @. ᶠu³_diff = ᶠu³ʲs.:($$ j) - ᶠu³
124125
125126 @. ᶜa_scalar =
126- (Y. c. sgsʲs.:($$ j). q_liq - ᶜspecific . q_liq ) *
127+ (Y. c. sgsʲs.:($$ j). q_liq - specific (Y . c . ρq_liq, Y . c . ρ) ) *
127128 draft_area (Y. c. sgsʲs.:($$ j). ρa, ᶜρʲs.:($$ j))
128129 vtt = vertical_transport (
129130 ᶜρʲs.:($ j),
@@ -135,7 +136,7 @@ function edmfx_sgs_mass_flux_tendency!(
135136 @. Yₜ. c. ρq_liq += vtt
136137
137138 @. ᶜa_scalar =
138- (Y. c. sgsʲs.:($$ j). q_ice - ᶜspecific . q_ice ) *
139+ (Y. c. sgsʲs.:($$ j). q_ice - specific (Y . c . ρq_ice, Y . c . ρ) ) *
139140 draft_area (Y. c. sgsʲs.:($$ j). ρa, ᶜρʲs.:($$ j))
140141 vtt = vertical_transport (
141142 ᶜρʲs.:($ j),
@@ -147,7 +148,7 @@ function edmfx_sgs_mass_flux_tendency!(
147148 @. Yₜ. c. ρq_ice += vtt
148149
149150 @. ᶜa_scalar =
150- (Y. c. sgsʲs.:($$ j). q_rai - ᶜspecific . q_rai ) *
151+ (Y. c. sgsʲs.:($$ j). q_rai - specific (Y . c . ρq_rai, Y . c . ρ) ) *
151152 draft_area (Y. c. sgsʲs.:($$ j). ρa, ᶜρʲs.:($$ j))
152153 vtt = vertical_transport (
153154 ᶜρʲs.:($ j),
@@ -159,7 +160,7 @@ function edmfx_sgs_mass_flux_tendency!(
159160 @. Yₜ. c. ρq_rai += vtt
160161
161162 @. ᶜa_scalar =
162- (Y. c. sgsʲs.:($$ j). q_sno - ᶜspecific . q_sno ) *
163+ (Y. c. sgsʲs.:($$ j). q_sno - specific (Y . c . ρq_sno, Y . c . ρ) ) *
163164 draft_area (Y. c. sgsʲs.:($$ j). ρa, ᶜρʲs.:($$ j))
164165 vtt = vertical_transport (
165166 ᶜρʲs.:($ j),
@@ -172,7 +173,8 @@ function edmfx_sgs_mass_flux_tendency!(
172173 end
173174 @. ᶠu³_diff = ᶠu³⁰ - ᶠu³
174175
175- @. ᶜa_scalar = (ᶜq_liq⁰ - ᶜspecific. q_liq) * draft_area (ᶜρa⁰, ᶜρ⁰)
176+ @. ᶜa_scalar =
177+ (ᶜq_liq⁰ - specific (Y. c. ρq_liq, Y. c. ρ)) * draft_area (ᶜρa⁰, ᶜρ⁰)
176178 vtt = vertical_transport (
177179 ᶜρ⁰,
178180 ᶠu³_diff,
@@ -182,7 +184,8 @@ function edmfx_sgs_mass_flux_tendency!(
182184 )
183185 @. Yₜ. c. ρq_liq += vtt
184186
185- @. ᶜa_scalar = (ᶜq_ice⁰ - ᶜspecific. q_ice) * draft_area (ᶜρa⁰, ᶜρ⁰)
187+ @. ᶜa_scalar =
188+ (ᶜq_ice⁰ - specific (Y. c. ρq_ice, Y. c. ρ)) * draft_area (ᶜρa⁰, ᶜρ⁰)
186189 vtt = vertical_transport (
187190 ᶜρ⁰,
188191 ᶠu³_diff,
@@ -192,7 +195,8 @@ function edmfx_sgs_mass_flux_tendency!(
192195 )
193196 @. Yₜ. c. ρq_ice += vtt
194197
195- @. ᶜa_scalar = (ᶜq_rai⁰ - ᶜspecific. q_rai) * draft_area (ᶜρa⁰, ᶜρ⁰)
198+ @. ᶜa_scalar =
199+ (ᶜq_rai⁰ - specific (Y. c. ρq_rai, Y. c. ρ)) * draft_area (ᶜρa⁰, ᶜρ⁰)
196200 vtt = vertical_transport (
197201 ᶜρ⁰,
198202 ᶠu³_diff,
@@ -202,7 +206,8 @@ function edmfx_sgs_mass_flux_tendency!(
202206 )
203207 @. Yₜ. c. ρq_rai += vtt
204208
205- @. ᶜa_scalar = (ᶜq_sno⁰ - ᶜspecific. q_sno) * draft_area (ᶜρa⁰, ᶜρ⁰)
209+ @. ᶜa_scalar =
210+ (ᶜq_sno⁰ - specific (Y. c. ρq_sno, Y. c. ρ)) * draft_area (ᶜρa⁰, ᶜρ⁰)
206211 vtt = vertical_transport (
207212 ᶜρ⁰,
208213 ᶠu³_diff,
@@ -271,11 +276,11 @@ function edmfx_sgs_mass_flux_tendency!(
271276 for j in 1 : n
272277 @. ᶠu³_diff = ᶠu³ʲs.:($$ j) - ᶠu³
273278 # @. ᶜa_scalar =
274- # (ᶜq_totʲs.:($$j) - ᶜspecific.q_tot ) *
279+ # (ᶜq_totʲs.:($$j) - specific(Y.c.ρq_tot, Y.c.ρ) ) *
275280 # draft_area(ᶜρaʲs.:($$j), ᶜρʲs.:($$j))
276281 # TODO : remove this filter when mass flux is treated implicitly
277282 @. ᶜa_scalar =
278- (ᶜq_totʲs.:($$ j) - ᶜspecific . q_tot ) * min (
283+ (ᶜq_totʲs.:($$ j) - specific (Y . c . ρq_tot, Y . c . ρ) ) * min (
279284 min (draft_area (ᶜρaʲs.:($$ j), ᶜρʲs.:($$ j)), a_max),
280285 FT (0.02 ) / max (
281286 Geometry. WVector (
@@ -491,7 +496,7 @@ function edmfx_sgs_diffusive_flux_tendency!(
491496 bottom = Operators. SetValue (C3 (FT (0 ))),
492497 )
493498 @. ᶜρχₜ_diffusion =
494- ᶜdivᵥ_ρq_tot (- (ᶠρaK_h * ᶠgradᵥ (ᶜspecific . q_tot )))
499+ ᶜdivᵥ_ρq_tot (- (ᶠρaK_h * ᶠgradᵥ (specific (Y . c . ρq_tot, Y . c . ρ) )))
495500 @. Yₜ. c. ρq_tot -= ᶜρχₜ_diffusion
496501 @. Yₜ. c. ρ -= ᶜρχₜ_diffusion
497502 end
0 commit comments