From 770b4eee84678c2caac6f0e11020b535fe2615c7 Mon Sep 17 00:00:00 2001 From: Anastasia Popova Date: Tue, 13 Feb 2024 14:13:43 -0800 Subject: [PATCH] Updated long variable names with local refs --- .buildkite/longruns/pipeline.yml | 2 +- .buildkite/pipeline.yml | 2 +- .../components/atmosphere/climaatmos_init.jl | 50 +++++++++---------- .../AMIP/components/land/bucket_utils.jl | 12 +++-- src/ConservationChecker.jl | 8 +-- test/mpi_tests/run_mpi_tests.jl | 2 +- 6 files changed, 39 insertions(+), 37 deletions(-) diff --git a/.buildkite/longruns/pipeline.yml b/.buildkite/longruns/pipeline.yml index 55cd72f5f8..fc31ae4cd3 100644 --- a/.buildkite/longruns/pipeline.yml +++ b/.buildkite/longruns/pipeline.yml @@ -1,7 +1,7 @@ agents: queue: central slurm_time: 24:00:00 - modules: julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 openmpi/4.1.5_cuda-12.2 nsight-systems/2023.4.1 + modules: julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 openmpi/4.1.5_cuda-12.2 nsight-systems/2023.3.1 env: JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite" diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index a7a96805e9..aa6278d0d8 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,7 +1,7 @@ agents: queue: central slurm_time: 24:00:00 - modules: julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 openmpi/4.1.5_cuda-12.2 nsight-systems/2023.4.1 + modules: julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 openmpi/4.1.5_cuda-12.2 nsight-systems/2023.3.1 env: JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite" diff --git a/experiments/AMIP/components/atmosphere/climaatmos_init.jl b/experiments/AMIP/components/atmosphere/climaatmos_init.jl index 724fef4aea..1326c9f14a 100644 --- a/experiments/AMIP/components/atmosphere/climaatmos_init.jl +++ b/experiments/AMIP/components/atmosphere/climaatmos_init.jl @@ -64,6 +64,7 @@ end function atmos_init(::Type{FT}, atmos_config_dict::Dict) where {FT} + # By passing `parsed_args` to `AtmosConfig`, `parsed_args` overwrites the default atmos config atmos_config = CA.AtmosConfig(atmos_config_dict) simulation = CA.get_simulation(atmos_config) @@ -76,16 +77,27 @@ function atmos_init(::Type{FT}, atmos_config_dict::Dict) where {FT} @warn("Running with ρe_int in coupled mode is not tested yet.", maxlog = 1) end + # define variables + ρ_flux_h_tot = integrator.p.precomputed.sfc_conditions.ρ_flux_h_tot + ρ_flux_q_tot = integrator.p.precomputed.sfc_conditions.ρ_flux_q_tot + ᶠradiation_flux = integrator.p.radiation.ᶠradiation_flux + ρ_flux_uₕ = integrator.p.precomputed.sfc_conditions.ρ_flux_uₕ + col_integrated_rain = integrator.p.precipitation.col_integrated_rain + col_integrated_snow = integrator.p.precipitation.col_integrated_snow + ᶜS_ρq_tot = integrator.p.precipitation.ᶜS_ρq_tot + ᶜ3d_rain = integrator.p.precipitation.ᶜ3d_rain + ᶜ3d_snow = integrator.p.precipitation.ᶜ3d_snow + # set initial fluxes to zero - @. integrator.p.precomputed.sfc_conditions.ρ_flux_h_tot = Geometry.Covariant3Vector(FT(0.0)) - @. integrator.p.precomputed.sfc_conditions.ρ_flux_q_tot = Geometry.Covariant3Vector(FT(0.0)) - @. integrator.p.radiation.ᶠradiation_flux = Geometry.WVector(FT(0)) - integrator.p.precomputed.sfc_conditions.ρ_flux_uₕ.components .= Ref(SMatrix{1, 2}([FT(0), FT(0)])) - integrator.p.precipitation.col_integrated_rain .= FT(0) - integrator.p.precipitation.col_integrated_snow .= FT(0) - integrator.p.precipitation.ᶜS_ρq_tot .= FT(0) - integrator.p.precipitation.ᶜ3d_rain .= FT(0) - integrator.p.precipitation.ᶜ3d_snow .= FT(0) + @. ρ_flux_h_tot = Geometry.Covariant3Vector(FT(0.0)) + @. ρ_flux_q_tot = Geometry.Covariant3Vector(FT(0.0)) + @. ᶠradiation_flux = Geometry.WVector(FT(0)) + ρ_flux_uₕ.components .= Ref(SMatrix{1, 2}([FT(0), FT(0)])) + col_integrated_rain .= FT(0) + col_integrated_snow .= FT(0) + ᶜS_ρq_tot .= FT(0) + ᶜ3d_rain .= FT(0) + ᶜ3d_snow .= FT(0) sim = ClimaAtmosSimulation(integrator.p.params, Y, spaces, integrator) @@ -307,22 +319,10 @@ function get_field(atmos_sim::ClimaAtmosSimulation, ::Val{:F_radiative_TOA}) face_space = axes(atmos_sim.integrator.u.f) nz_faces = length(Spaces.vertical_topology(face_space).mesh.faces) - LWd_TOA = Fields.level( - CA.RRTMGPI.array2field(FT.(atmos_sim.integrator.p.radiation.radiation_model.face_lw_flux_dn), face_space), - nz_faces - half, - ) - LWu_TOA = Fields.level( - CA.RRTMGPI.array2field(FT.(atmos_sim.integrator.p.radiation.radiation_model.face_lw_flux_up), face_space), - nz_faces - half, - ) - SWd_TOA = Fields.level( - CA.RRTMGPI.array2field(FT.(atmos_sim.integrator.p.radiation.radiation_model.face_sw_flux_dn), face_space), - nz_faces - half, - ) - SWu_TOA = Fields.level( - CA.RRTMGPI.array2field(FT.(atmos_sim.integrator.p.radiation.radiation_model.face_sw_flux_up), face_space), - nz_faces - half, - ) + LWd_TOA = Fields.level(CA.RRTMGPI.array2field(FT.(radiation.face_lw_flux_dn), face_space), nz_faces - half) + LWu_TOA = Fields.level(CA.RRTMGPI.array2field(FT.(radiation.face_lw_flux_up), face_space), nz_faces - half) + SWd_TOA = Fields.level(CA.RRTMGPI.array2field(FT.(radiation.face_sw_flux_dn), face_space), nz_faces - half) + SWu_TOA = Fields.level(CA.RRTMGPI.array2field(FT.(radiation.face_sw_flux_up), face_space), nz_faces - half) return @. -(LWd_TOA + SWd_TOA - LWu_TOA - SWu_TOA) # [W/m^2] else diff --git a/experiments/AMIP/components/land/bucket_utils.jl b/experiments/AMIP/components/land/bucket_utils.jl index 58b94a5613..74ce00624c 100644 --- a/experiments/AMIP/components/land/bucket_utils.jl +++ b/experiments/AMIP/components/land/bucket_utils.jl @@ -15,8 +15,10 @@ function make_land_domain( @assert zlim[1] < zlim[2] depth = zlim[2] - zlim[1] - radius = ClimaCore.Spaces.topology(atmos_boundary_space).mesh.domain.radius - nelements_horz = ClimaCore.Spaces.topology(atmos_boundary_space).mesh.ne + mesh = ClimaCore.Spaces.topology(atmos_boundary_space).mesh + + radius = mesh.domain.radius + nelements_horz = mesh.ne npolynomial = ClimaCore.Spaces.Quadratures.polynomial_degree(ClimaCore.Spaces.quadrature_style(atmos_boundary_space)) nelements = (nelements_horz, nelements_vert) @@ -79,9 +81,9 @@ reinit!(sim::BucketSimulation) = reinit!(sim.integrator) # extensions required by FluxCalculator (partitioned fluxes) function update_turbulent_fluxes_point!(sim::BucketSimulation, fields::NamedTuple, colidx::Fields.ColumnIndex) (; F_turb_energy, F_turb_moisture) = fields - sim.integrator.p.bucket.turbulent_fluxes.shf[colidx] .= F_turb_energy - sim.integrator.p.bucket.turbulent_fluxes.vapor_flux[colidx] .= - F_turb_moisture ./ LP.ρ_cloud_liq(sim.model.parameters.earth_param_set) + turbulent_fluxes = sim.integrator.p.bucket.turbulent_fluxes + turbulent_fluxes.shf[colidx] .= F_turb_energy + turbulent_fluxes.vapor_flux[colidx] .= F_turb_moisture ./ LP.ρ_cloud_liq(sim.model.parameters.earth_param_set) return nothing end diff --git a/src/ConservationChecker.jl b/src/ConservationChecker.jl index b6a2845775..c70b2e0fbe 100644 --- a/src/ConservationChecker.jl +++ b/src/ConservationChecker.jl @@ -96,14 +96,14 @@ function check_conservation!( for sim in model_sims sim_name = Symbol(Interfacer.name(sim)) if sim isa Interfacer.AtmosModelSimulation + F_radiative_TOA = coupler_sim.fields.F_radiative_TOA # save radiation source - parent(coupler_sim.fields.F_radiative_TOA) .= parent(Interfacer.get_field(sim, Val(:F_radiative_TOA))) + parent(F_radiative_TOA) .= parent(Interfacer.get_field(sim, Val(:F_radiative_TOA))) if isempty(ccs.toa_net_source) - radiation_sources_accum = sum(coupler_sim.fields.F_radiative_TOA .* FT(coupler_sim.Δt_cpl)) # ∫ J / m^2 dA + radiation_sources_accum = sum(F_radiative_TOA .* FT(coupler_sim.Δt_cpl)) # ∫ J / m^2 dA else - radiation_sources_accum = - sum(coupler_sim.fields.F_radiative_TOA .* FT(coupler_sim.Δt_cpl)) .+ ccs.toa_net_source[end] # ∫ J / m^2 dA + radiation_sources_accum = sum(F_radiative_TOA .* FT(coupler_sim.Δt_cpl)) .+ ccs.toa_net_source[end] # ∫ J / m^2 dA end push!(ccs.toa_net_source, radiation_sources_accum) diff --git a/test/mpi_tests/run_mpi_tests.jl b/test/mpi_tests/run_mpi_tests.jl index 91e6ecfa4f..30b45bb35a 100644 --- a/test/mpi_tests/run_mpi_tests.jl +++ b/test/mpi_tests/run_mpi_tests.jl @@ -2,7 +2,7 @@ using MPI #= # if running locally: module purge -module load julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 nsight-systems/2023.4.1 +module load julia/1.10.0 cuda/12.2 ucx/1.14.1_cuda-12.2 nsight-systems/2023.3.1 export OPENBLAS_NUM_THREADS=1 export JULIA_NVTX_CALLBACKS=gc export OMPI_MCA_opal_warn_on_missing_libcuda=0