diff --git a/.gitignore b/.gitignore index 66170d94..9de80b1d 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ docs/site/ # environment. Manifest.toml test/Artifacts.toml + +# vim temporary files +*.swp +*.swo diff --git a/src/Parameters.jl b/src/Parameters.jl index a2b954fa..5e0458ee 100644 --- a/src/Parameters.jl +++ b/src/Parameters.jl @@ -1,9 +1,12 @@ module Parameters import Thermodynamics +import ..UniversalFunctions +import ..UniversalFunctions: universal_func_type + const TD = Thermodynamics const TDPS = TD.Parameters.ThermodynamicsParameters -import ..UniversalFunctions + const UF = UniversalFunctions abstract type AbstractSurfaceFluxesParameters end @@ -11,10 +14,11 @@ const ASFP = AbstractSurfaceFluxesParameters Base.broadcastable(ps::ASFP) = tuple(ps) -Base.@kwdef struct SurfaceFluxesParameters{FT, AUFPS <: UF.AbstractUniversalFunctionParameters{FT}, TP} <: - AbstractSurfaceFluxesParameters +const AUFP{FT} = UF.AbstractUniversalFunctionParameters{FT} where FT + +Base.@kwdef struct SurfaceFluxesParameters{FT, U<:AUFP{FT}, TP} <: ASFP von_karman_const::FT - ufp::AUFPS + ufp::U thermo_params::TP end @@ -22,7 +26,8 @@ thermodynamics_params(ps::SurfaceFluxesParameters) = ps.thermo_params uf_params(ps::SurfaceFluxesParameters) = ps.ufp von_karman_const(ps::SurfaceFluxesParameters) = ps.von_karman_const -universal_func_type(::SurfaceFluxesParameters{FT, AUFPS}) where {FT, AUFPS} = UF.universal_func_type(AUFPS) +universal_func_type(::SurfaceFluxesParameters{FT, UFP}) where {FT, UFP} = + universal_func_type(UFP) for var in fieldnames(TDPS) @eval $var(ps::ASFP) = TD.Parameters.$var(thermodynamics_params(ps)) @@ -33,16 +38,16 @@ molmass_ratio(ps::ASFP) = TD.Parameters.molmass_ratio(thermodynamics_params(ps)) R_d(ps::ASFP) = TD.Parameters.R_d(thermodynamics_params(ps)) cp_d(ps::ASFP) = TD.Parameters.cp_d(thermodynamics_params(ps)) -Pr_0(ps::SurfaceFluxesParameters) = Pr_0(uf_params(ps)) -a_m(ps::SurfaceFluxesParameters) = a_m(uf_params(ps)) -a_h(ps::SurfaceFluxesParameters) = a_h(uf_params(ps)) -b_m(ps::SurfaceFluxesParameters) = b_m(uf_params(ps)) -b_h(ps::SurfaceFluxesParameters) = b_h(uf_params(ps)) -c_m(ps::SurfaceFluxesParameters) = c_m(uf_params(ps)) -c_h(ps::SurfaceFluxesParameters) = c_h(uf_params(ps)) -d_m(ps::SurfaceFluxesParameters) = d_m(uf_params(ps)) -d_h(ps::SurfaceFluxesParameters) = d_h(uf_params(ps)) -ζ_a(ps::SurfaceFluxesParameters) = ζ_a(uf_params(ps)) -γ(ps::SurfaceFluxesParameters) = γ(uf_params(ps)) +Pr_0(ps::ASFP) = Pr_0(uf_params(ps)) +a_m(ps::ASFP) = a_m(uf_params(ps)) +a_h(ps::ASFP) = a_h(uf_params(ps)) +b_m(ps::ASFP) = b_m(uf_params(ps)) +b_h(ps::ASFP) = b_h(uf_params(ps)) +c_m(ps::ASFP) = c_m(uf_params(ps)) +c_h(ps::ASFP) = c_h(uf_params(ps)) +d_m(ps::ASFP) = d_m(uf_params(ps)) +d_h(ps::ASFP) = d_h(uf_params(ps)) +ζ_a(ps::ASFP) = ζ_a(uf_params(ps)) +γ(ps::ASFP) = γ(uf_params(ps)) end diff --git a/src/SurfaceFluxes.jl b/src/SurfaceFluxes.jl index d2d87fd3..f47535c1 100644 --- a/src/SurfaceFluxes.jl +++ b/src/SurfaceFluxes.jl @@ -16,7 +16,6 @@ """ module SurfaceFluxes - import RootSolvers const RS = RootSolvers