Skip to content

Commit c96101a

Browse files
committed
use atmos config in coupler
1 parent 210ffff commit c96101a

File tree

4 files changed

+30
-8
lines changed

4 files changed

+30
-8
lines changed

config/benchmark_configs/amip_diagedmf.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FLOAT_TYPE: "Float32"
22
anim: false
3-
atmos_config_file: "config/gpu_configs/gpu_aquaplanet_diagedmf.yml"
3+
atmos_config_file: "config/benchmark_configs/climaatmos_diagedmf.yml"
4+
atmos_config_repo: "ClimaCoupler"
45
dt_cpl: 120
56
dt_save_state_to_disk: "Inf"
67
dt_save_to_sol: "Inf"

config/benchmark_configs/gpu_amip_diagedmf.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FLOAT_TYPE: "Float32"
22
anim: false
3-
atmos_config_file: "config/gpu_configs/gpu_aquaplanet_diagedmf.yml"
3+
atmos_config_file: "config/benchmark_configs/gpu_climaatmos_diagedmf.yml"
4+
atmos_config_repo: "ClimaCoupler"
45
dt_cpl: 120
56
dt_save_state_to_disk: "Inf"
67
dt_save_to_sol: "Inf"

experiments/AMIP/cli_options.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ function argparse_settings()
9393
help = "Type of albedo model. [`ConstantAlbedo` (default), `RegressionFunctionAlbedo`, `CouplerAlbedo`]"
9494
arg_type = String
9595
default = "CouplerAlbedo"
96+
"--atmos_config_repo"
97+
help = "The repository containing the ClimaAtmos configuration file to use [`ClimaAtmos` (default), `ClimaCoupler`]"
98+
arg_type = String
99+
default = "ClimaAtmos"
96100
# ClimaLand specific
97101
"--land_albedo_type"
98102
help = "Access land surface albedo information from data file. [`function`, `map_static`, `map_temporal`]"

experiments/AMIP/components/atmosphere/climaatmos.jl

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -299,20 +299,36 @@ FluxCalculator.get_surface_params(sim::ClimaAtmosSimulation) = CAP.surface_fluxe
299299
300300
Returns the specified atmospheric configuration (`atmos_config`) overwitten by arguments
301301
in the coupler dictionary (`config_dict`). The returned dictionary will then be passed to CA.AtmosConfig().
302+
The `atmos_config_repo` flag allows us to
303+
use a configuration specified within the ClimaCoupler repo, which is useful for direct
304+
coupled/atmos-only comparisons.
302305
"""
303306
function get_atmos_config_dict(coupler_dict)
304307
atmos_config_file = coupler_dict["atmos_config_file"]
308+
atmos_config_repo = coupler_dict["atmos_config_repo"]
305309
# override default or specified configs with coupler arguments, and set the correct atmos config_file
306-
if isnothing(atmos_config_file)
307-
@info "Using Atmos default configuration"
308-
atmos_config = merge(CA.default_config_dict(), coupler_dict, Dict("config_file" => atmos_config_file))
309-
else
310-
@info "Using Atmos configuration from $atmos_config_file"
310+
if atmos_config_repo == "ClimaCoupler"
311+
@assert !isnothing(atmos_config_file) "Must specify `atmos_config_file` within ClimaCoupler."
312+
@info "Using Atmos configuration from ClimaCoupler in $atmos_config_file"
311313
atmos_config = merge(
312-
CA.override_default_config(joinpath(pkgdir(CA), atmos_config_file)),
314+
CA.override_default_config(joinpath(pkgdir(ClimaCoupler), atmos_config_file)),
313315
coupler_dict,
314316
Dict("config_file" => atmos_config_file),
315317
)
318+
elseif atmos_config_repo == "ClimaAtmos"
319+
if isnothing(atmos_config_file)
320+
@info "Using Atmos default configuration"
321+
atmos_config = merge(CA.default_config_dict(), coupler_dict, Dict("config_file" => atmos_config_file))
322+
else
323+
@info "Using Atmos configuration from $atmos_config_file"
324+
atmos_config = merge(
325+
CA.override_default_config(joinpath(pkgdir(CA), atmos_config_file)),
326+
coupler_dict,
327+
Dict("config_file" => atmos_config_file),
328+
)
329+
end
330+
else
331+
error("Invalid `atmos_config_repo`; please use \"ClimaCoupler\" or \"ClimaAtmos\"")
316332
end
317333

318334
# use coupler toml if atmos is not defined

0 commit comments

Comments
 (0)