@@ -6,6 +6,11 @@ import Dates
66import ClimaUtilities. ClimaArtifacts: @clima_artifact
77import LazyArtifacts
88
9+ abstract type AbstractPrescribedFlow end
10+ @kwdef struct PrescribedFlow
11+ prescribed_u₃:: Function
12+ end
13+
914abstract type AbstractMoistureModel end
1015abstract type AbstractMoistModel <: AbstractMoistureModel end
1116struct DryModel <: AbstractMoistureModel end
@@ -681,11 +686,12 @@ Base.broadcastable(x::AtmosGravityWave) = tuple(x)
681686Base. broadcastable (x:: AtmosSponge ) = tuple (x)
682687Base. broadcastable (x:: AtmosSurface ) = tuple (x)
683688
684- struct AtmosModel{W, SCM, R, TC, GW, VD, SP, SU, NU}
689+ struct AtmosModel{W, SCM, R, TC, PF, GW, VD, SP, SU, NU}
685690 water:: W
686691 scm_setup:: SCM
687692 radiation:: R
688693 turbconv:: TC
694+ prescribed_flow:: PF
689695 gravity_wave:: GW
690696 vertical_diffusion:: VD
691697 sponge:: SP
@@ -701,6 +707,7 @@ const ATMOS_MODEL_GROUPS = (
701707 (AtmosWater, :water ),
702708 (AtmosRadiation, :radiation ),
703709 (AtmosTurbconv, :turbconv ),
710+ (PrescribedFlow, :prescribed_flow ),
704711 (AtmosGravityWave, :gravity_wave ),
705712 (AtmosSponge, :sponge ),
706713 (AtmosSurface, :surface ),
@@ -918,11 +925,14 @@ function AtmosModel(; kwargs...)
918925 disable_surface_flux_tendency =
919926 get (atmos_model_kwargs, :disable_surface_flux_tendency , false )
920927
928+ prescribed_flow = get (atmos_model_kwargs, :prescribed_flow , nothing )
929+
921930 return AtmosModel{
922931 typeof (water),
923932 typeof (scm_setup),
924933 typeof (radiation),
925934 typeof (turbconv),
935+ typeof (prescribed_flow),
926936 typeof (gravity_wave),
927937 typeof (vertical_diffusion),
928938 typeof (sponge),
@@ -933,6 +943,7 @@ function AtmosModel(; kwargs...)
933943 scm_setup,
934944 radiation,
935945 turbconv,
946+ prescribed_flow,
936947 gravity_wave,
937948 vertical_diffusion,
938949 sponge,
0 commit comments