@@ -27,33 +27,38 @@ prognostic_nt(::Val{names}, ::Val{K}, vals...) where {names, K} =
2727@generated function construct_tends (:: Val{names} , f, ᶜY, ᶠY, p, t) where {names}
2828 calls = []
2929 for name in names
30- push! (calls, :(f (Val ($ name), ᶜY, ᶠY, p, t)))
30+ push! (calls, :(f (Val ($ ( QuoteNode ( name)) ), ᶜY, ᶠY, p, t)))
3131 end
3232 return quote
33- $ (calls... )
33+ ( $ (calls... ), )
3434 end
3535end
3636
3737function ᶜremaining_tendency (ᶜY, ᶠY, p, t)
3838 names = propertynames (ᶜY)
3939 tends = construct_tends (Val (names), ᶜremaining_tendency, ᶜY, ᶠY, p, t)
40- # tends = (;
41- # ᶜremaining_tendency(Val(:ρ), ᶜY, ᶠY, p, t)...,
42- # ᶜremaining_tendency(Val(:uₕ), ᶜY, ᶠY, p, t)...,
43- # ᶜremaining_tendency(Val(:ρe_tot), ᶜY, ᶠY, p, t)...,
44- # ᶜremaining_tendency(Val(:ρq_tot), ᶜY, ᶠY, p, t)...,
45- # ᶜremaining_tendency(Val(:ρq_liq), ᶜY, ᶠY, p, t)...,
46- # ᶜremaining_tendency(Val(:ρq_ice), ᶜY, ᶠY, p, t)...,
47- # ᶜremaining_tendency(Val(:ρq_rai), ᶜY, ᶠY, p, t)...,
48- # ᶜremaining_tendency(Val(:ρq_sno), ᶜY, ᶠY, p, t)...,
49- # ᶜremaining_tendency(Val(:sgs⁰), ᶜY, ᶠY, p, t)...,
50- # ᶜremaining_tendency(Val(:sgsʲs), ᶜY, ᶠY, p, t)...,
40+ @show length (tends)
41+ @show length (names)
42+ # tends = (
43+ # ᶜremaining_tendency(Val(:ρ), ᶜY, ᶠY, p, t),
44+ # ᶜremaining_tendency(Val(:uₕ), ᶜY, ᶠY, p, t),
45+ # ᶜremaining_tendency(Val(:ρe_tot), ᶜY, ᶠY, p, t),
46+ # ᶜremaining_tendency(Val(:ρq_tot), ᶜY, ᶠY, p, t),
47+ # ᶜremaining_tendency(Val(:ρq_liq), ᶜY, ᶠY, p, t),
48+ # ᶜremaining_tendency(Val(:ρq_ice), ᶜY, ᶠY, p, t),
49+ # ᶜremaining_tendency(Val(:ρq_rai), ᶜY, ᶠY, p, t),
50+ # ᶜremaining_tendency(Val(:ρq_sno), ᶜY, ᶠY, p, t),
51+ # ᶜremaining_tendency(Val(:sgs⁰), ᶜY, ᶠY, p, t),
52+ # ᶜremaining_tendency(Val(:sgsʲs), ᶜY, ᶠY, p, t),
5153 # )
5254
5355 # return lazy.(prognostic_nt.(Val(names), Val(keys(tends)), values(tends)...))
54- prog_nt = (NamedTuple{names} ∘ tuple)
55- return lazy .(prog_nt .(tends))
56+ # prog_nt = (NamedTuple{names} ∘ tuple)
57+ # return lazy.(prog_nt.(tends))
58+ return lazy .(foo .(Val (names), tends... ))
5659end
60+ foo (:: Val{names} , tends... ) where {names} = NamedTuple {names} (tends)
61+
5762function ᶠremaining_tendency (ᶜY, ᶠY, p, t)
5863 names = propertynames (ᶠY)
5964 tends = construct_tends (Val (names), ᶠremaining_tendency, ᶜY, ᶠY, p, t)
@@ -62,8 +67,9 @@ function ᶠremaining_tendency(ᶜY, ᶠY, p, t)
6267 # ᶠremaining_tendency(Val(:sgsʲs), ᶜY, ᶠY, p, t)...,
6368 # )
6469 # return lazy.(prognostic_nt.(Val(names), Val(keys(tends)), values(tends)...))
65- prog_nt = (NamedTuple{names} ∘ tuple)
66- return lazy .(prog_nt .(tends))
70+ # prog_nt = (NamedTuple{names} ∘ tuple)
71+ # return lazy.(prog_nt.(tends))
72+ return lazy .(foo .(Val (names), tends... ))
6773end
6874using ClimaCore. RecursiveApply: rzero
6975function ᶜremaining_tendency (:: Val{:ρ} , ᶜY, ᶠY, p, t)
0 commit comments