@@ -407,15 +407,50 @@ function edmfx_sgs_vertical_advection_tendency!(
407
407
ᶜmseᵣ = (@. lazy (Y. c. sgsʲs.:($$ j). q_rai * (TD. internal_energy_liquid (thp, ᶜtsʲs.:($$ j)) + TD. gas_constant_air (thp, ᶜtsʲs.:($$ j)) * TD. air_temperature (thp, ᶜtsʲs.:($$ j)) + ᶜΦ)))
408
408
ᶜmseₛ = (@. lazy (Y. c. sgsʲs.:($$ j). q_sno * (TD. internal_energy_ice (thp, ᶜtsʲs.:($$ j)) + TD. gas_constant_air (thp, ᶜtsʲs.:($$ j)) * TD. air_temperature (thp, ᶜtsʲs.:($$ j)) + ᶜΦ)))
409
409
410
+ #=
411
+ # option I - RICO works well but we are missing q * mse advective term
412
+ #va = vertical_advection(ᶠwₗ³ʲs, (@. lazy(ᶜmseₗ - Y.c.sgsʲs.:($$j).q_liq * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
410
413
va = vertical_advection(ᶠwₗ³ʲs, ᶜmseₗ, edmfx_upwinding)
411
414
@. Yₜ.c.sgsʲs.:($$j).mse += va
415
+ #va = vertical_advection(ᶠwᵢ³ʲs, (@. lazy(ᶜmseᵢ - Y.c.sgsʲs.:($$j).q_ice * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
412
416
va = vertical_advection(ᶠwᵢ³ʲs, ᶜmseᵢ, edmfx_upwinding)
413
417
@. Yₜ.c.sgsʲs.:($$j).mse += va
418
+ #va = vertical_advection(ᶠwᵣ³ʲs, (@. lazy(ᶜmseᵣ - Y.c.sgsʲs.:($$j).q_rai * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
414
419
va = vertical_advection(ᶠwᵣ³ʲs, ᶜmseᵣ, edmfx_upwinding)
415
420
@. Yₜ.c.sgsʲs.:($$j).mse += va
421
+ #va = vertical_advection(ᶠwₛ³ʲs, (@. lazy(ᶜmseₛ - Y.c.sgsʲs.:($$j).q_sno * Y.c.sgsʲs.:($$j).mse)), edmfx_upwinding)
416
422
va = vertical_advection(ᶠwₛ³ʲs, ᶜmseₛ, edmfx_upwinding)
417
423
@. Yₜ.c.sgsʲs.:($$j).mse += va
418
424
425
+ va = vertical_advection(ᶠwₗ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
426
+ @. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_liq
427
+ va = vertical_advection(ᶠwᵢ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
428
+ @. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_ice
429
+ va = vertical_advection(ᶠwᵣ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
430
+ @. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_rai
431
+ va = vertical_advection(ᶠwₛ³ʲs, Y.c.sgsʲs.:($j).mse, edmfx_upwinding)
432
+ @. Yₜ.c.sgsʲs.:($$j).mse += va * Y.c.sgsʲs.:($$j).q_sno
433
+ =#
434
+ # option II
435
+ # RICO works well but we are missing mse * q_ advection term
436
+ va = vertical_advection (ᶠwₗ³ʲs, ᶜmseₗ, edmfx_upwinding)
437
+ @. Yₜ. c. sgsʲs.:($$ j). mse += va
438
+ va = vertical_advection (ᶠwᵢ³ʲs, ᶜmseᵢ, edmfx_upwinding)
439
+ @. Yₜ. c. sgsʲs.:($$ j). mse += va
440
+ va = vertical_advection (ᶠwᵣ³ʲs, ᶜmseᵣ, edmfx_upwinding)
441
+ @. Yₜ. c. sgsʲs.:($$ j). mse += va
442
+ va = vertical_advection (ᶠwₛ³ʲs, ᶜmseₛ, edmfx_upwinding)
443
+ @. Yₜ. c. sgsʲs.:($$ j). mse += va
444
+ #=
445
+ va = vertical_advection(ᶠwₗ³ʲs, Y.c.sgsʲs.:($j).q_liq, edmfx_upwinding)
446
+ @. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
447
+ va = vertical_advection(ᶠwᵢ³ʲs, Y.c.sgsʲs.:($j).q_ice, edmfx_upwinding)
448
+ @. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
449
+ va = vertical_advection(ᶠwᵣ³ʲs, Y.c.sgsʲs.:($j).q_rai, edmfx_upwinding)
450
+ @. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
451
+ va = vertical_advection(ᶠwₛ³ʲs, Y.c.sgsʲs.:($j).q_sno, edmfx_upwinding)
452
+ @. Yₜ.c.sgsʲs.:($$j).mse -= Y.c.sgsʲs.:($$j).mse * va
453
+ =#
419
454
# mse, q_tot and moisture tracers terms proportional to 1/ρ̂ ∂zρ̂
420
455
ᶜinv_ρ̂ = (@. lazy (divide_by_ρa (FT (1 ), Y. c. sgsʲs.:($$ j). ρa, FT (0 ), Y. c. ρ, turbconv_model)))
421
456
ᶜ∂ρ̂∂zₗ = (@. lazy (upwind_biased_grad (- 1 * Geometry. WVector (ᶜwₗʲs.:($$ j)), Y. c. sgsʲs.:($$ j). ρa)))
0 commit comments