@@ -15,12 +15,15 @@ import StaticArrays as SA
1515Construct the parameter set for any ClimaAtmos configuration.
1616"""
1717ClimaAtmosParameters (config:: AtmosConfig ) =
18- ClimaAtmosParameters (config. toml_dict)
18+ ClimaAtmosParameters (config. toml_dict, config . parsed_args )
1919
2020ClimaAtmosParameters (:: Type{FT} ) where {FT <: AbstractFloat } =
2121 ClimaAtmosParameters (CP. create_toml_dict (FT))
2222
23- function ClimaAtmosParameters (toml_dict:: TD ) where {TD <: CP.AbstractTOMLDict }
23+ function ClimaAtmosParameters (
24+ toml_dict:: TD ,
25+ parsed_args = nothing ,
26+ ) where {TD <: CP.AbstractTOMLDict }
2427 FT = CP. float_type (toml_dict)
2528
2629 turbconv_params = TurbulenceConvectionParameters (toml_dict)
@@ -51,6 +54,16 @@ function ClimaAtmosParameters(toml_dict::TD) where {TD <: CP.AbstractTOMLDict}
5154 microphysics_0m_params = CM. Parameters. Parameters0M (toml_dict)
5255 microphysics_1m_params = microphys_1m_parameters (toml_dict)
5356 microphysics_2m_params = microphys_2m_parameters (toml_dict)
57+
58+ # If parsed_args is provided, we can save parameter space by only loading parameters
59+ # needed for the microphysics model that is actually used.
60+ if ! isnothing (parsed_args)
61+ cm_model = get_microphysics_model (parsed_args)
62+ cm_model isa Microphysics0Moment || (microphysics_0m_params = nothing )
63+ cm_model isa Union{Microphysics1Moment, Microphysics2Moment} ||
64+ (microphysics_1m_params = nothing )
65+ cm_model isa Microphysics2Moment || (microphysics_2m_params = nothing )
66+ end
5467 MP0M = typeof (microphysics_0m_params)
5568 MP1M = typeof (microphysics_1m_params)
5669 MP2M = typeof (microphysics_2m_params)
0 commit comments