diff --git a/config/longrun_configs/amip_target_topo.yml b/config/longrun_configs/amip_target_topo.yml index 3fc472091a..7361018d4e 100644 --- a/config/longrun_configs/amip_target_topo.yml +++ b/config/longrun_configs/amip_target_topo.yml @@ -14,6 +14,7 @@ hourly_checkpoint: true land_albedo_type: "map_temporal" mode_name: "amip" mono_surface: false +hyperdiffusion: "ClimaHyperdiffusion" netcdf_interpolate_z_over_msl: true rad: "allskywithclear" start_date: "20100101" @@ -22,4 +23,4 @@ t_end: "100days" topo_smoothing: true topography: "Earth" turb_flux_partition: "CombinedStateFluxesMOST" -vert_diff: "true" +vert_diff: "FriersonDiffusion" diff --git a/config/longrun_configs/slabplanet_aqua_coupler_sf_evolve_ocn.yml b/config/longrun_configs/slabplanet_aqua_coupler_sf_evolve_ocn.yml index cb533a2a94..ad57a1b47f 100644 --- a/config/longrun_configs/slabplanet_aqua_coupler_sf_evolve_ocn.yml +++ b/config/longrun_configs/slabplanet_aqua_coupler_sf_evolve_ocn.yml @@ -16,4 +16,4 @@ start_date: "19790301" surface_setup: "PrescribedSurface" t_end: "20days" turb_flux_partition: "CombinedStateFluxesMOST" -vert_diff: "true" +vert_diff: "FriersonDiffusion" diff --git a/experiments/ClimaEarth/components/atmosphere/climaatmos.jl b/experiments/ClimaEarth/components/atmosphere/climaatmos.jl index 4809a9321e..25f9c253bd 100644 --- a/experiments/ClimaEarth/components/atmosphere/climaatmos.jl +++ b/experiments/ClimaEarth/components/atmosphere/climaatmos.jl @@ -305,9 +305,13 @@ function get_atmos_config_dict(coupler_dict::Dict, job_id::String) atmos_config_file = coupler_dict["atmos_config_file"] atmos_config_repo = coupler_dict["atmos_config_repo"] # override default or specified configs with coupler arguments, and set the correct atmos config_file + comms_ctx = ClimaComms.context() + @info atmos_config_repo if atmos_config_repo == "ClimaCoupler" @assert !isnothing(atmos_config_file) "Must specify `atmos_config_file` within ClimaCoupler." - @info "Using Atmos configuration from ClimaCoupler in $atmos_config_file" + if ClimaComms.iamroot(comms_ctx) + @info "Using Atmos configuration from ClimaCoupler in $atmos_config_file" + end atmos_config = merge( CA.override_default_config(joinpath(pkgdir(ClimaCoupler), atmos_config_file)), coupler_dict, @@ -315,10 +319,14 @@ function get_atmos_config_dict(coupler_dict::Dict, job_id::String) ) elseif atmos_config_repo == "ClimaAtmos" if isnothing(atmos_config_file) - @info "Using Atmos default configuration" + if ClimaComms.iamroot(comms_ctx) + @info "Using Atmos default configuration" + end atmos_config = merge(CA.default_config_dict(), coupler_dict, Dict("config_file" => atmos_config_file)) else - @info "Using Atmos configuration from $atmos_config_file" + if ClimaComms.iamroot(comms_ctx) + @info "Using Atmos configuration from $atmos_config_file" + end atmos_config = merge( CA.override_default_config(joinpath(pkgdir(CA), atmos_config_file)), coupler_dict, @@ -339,7 +347,9 @@ function get_atmos_config_dict(coupler_dict::Dict, job_id::String) toml_file = isnothing(toml_file) ? joinpath(pkgdir(ClimaCoupler), default_toml_file) : toml_file if !isnothing(toml_file) - @info "Overwriting Atmos parameters from $toml_file" + if ClimaComms.iamroot(comms_ctx) + @info "Overwriting Atmos parameters from $toml_file" + end atmos_config = merge(atmos_config, Dict("toml" => [toml_file])) end diff --git a/experiments/ClimaEarth/run_amip.jl b/experiments/ClimaEarth/run_amip.jl index e80844306d..17c9ae2dea 100644 --- a/experiments/ClimaEarth/run_amip.jl +++ b/experiments/ClimaEarth/run_amip.jl @@ -108,6 +108,9 @@ job_id = parsed_args["job_id"] config_dict = YAML.load_file(parsed_args["config_file"]) config_dict = merge(parsed_args, config_dict) +comms_ctx = Utilities.get_comms_context(parsed_args) +ClimaComms.init(comms_ctx) + ## get component model dictionaries (if applicable) atmos_config_dict, config_dict = get_atmos_config_dict(config_dict, job_id) atmos_config_object = CA.AtmosConfig(atmos_config_dict) @@ -138,8 +141,6 @@ We set up communication context for CPU single thread/CPU with MPI/GPU. If no de then `ClimaComms` automatically selects the device from which this code is called. =# -comms_ctx = Utilities.get_comms_context(parsed_args) -ClimaComms.init(comms_ctx) ## make sure we don't use animations for GPU runs if comms_ctx.device isa ClimaComms.CUDADevice diff --git a/src/Utilities.jl b/src/Utilities.jl index c4494ffb67..46b4c7fd36 100644 --- a/src/Utilities.jl +++ b/src/Utilities.jl @@ -60,12 +60,12 @@ function get_comms_context(parsed_args) comms_ctx = ClimaComms.context(device) ClimaComms.init(comms_ctx) - @info "Running on $(nameof(typeof(device)))." - if comms_ctx isa ClimaComms.SingletonCommsContext - @info "Setting up single-process ClimaCoupler run" + @info "Setting up single-process ClimaCoupler run on device: $(nameof(typeof(device)))." else - @info "Setting up distributed ClimaCoupler run" nprocs = ClimaComms.nprocs(comms_ctx) + if ClimaComms.iamroot(comms_ctx) + @info "Setting up distributed ClimaCoupler run on " nprocs = ClimaComms.nprocs(comms_ctx) device = "$(nameof(typeof(device)))" + end end return comms_ctx