Skip to content

Commit

Permalink
WIP: Apply changes from surface fluxes rework CA PR #1447
Browse files Browse the repository at this point in the history
  • Loading branch information
valeriabarra committed May 26, 2023
1 parent 5242ff8 commit 97dbb84
Show file tree
Hide file tree
Showing 8 changed files with 18 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# atmos_init: for ClimaAtmos pre-AMIP interface
import ClimaAtmos
import ClimaAtmos.RRTMGPInterface as RRTMGPI

driver_file = joinpath(pkgdir(ClimaAtmos), "examples", "hybrid", "driver.jl")
ENV["CI_PERF_SKIP_RUN"] = true
Expand Down
4 changes: 2 additions & 2 deletions experiments/AMIP/modular/components/flux_calculator.jl
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ function calculate_surface_fluxes_atmos_grid!(integrator, info_sfc)
Fields.bycolumn(axes(Y.c.uₕ)) do colidx
get_surface_fluxes!(Y, p, colidx)
# corrections (accounting for inhomogeneous surfaces)
@. p.ρ_dif_flux_h_tot[colidx] = # checking right quantity in ClimaAtmos v0.11.0
@. p.ρ_flux_h_tot[colidx] = # checking right quantity in ClimaAtmos v0.11.0
-Geometry.WVector(correct_e_over_ice(p.surface_conditions[colidx], ice_fraction[colidx]))
@. p.ρ_dif_flux_q_tot[colidx] =
@. p.ρ_flux_q_tot[colidx] =
-Geometry.WVector(correct_q_over_ice(p.surface_conditions[colidx], ice_fraction[colidx]))
end
end
Expand Down
6 changes: 3 additions & 3 deletions experiments/AMIP/modular/components/push_pull.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ updates F_A, F_R, P_liq, and F_E in place based on values used in the atmos_sim
function atmos_push!(cs)
atmos_sim = cs.model_sims.atmos_sim
csf = cs.fields
dummmy_remap!(csf.F_A, atmos_sim.integrator.p.ρ_dif_flux_h_tot)
dummmy_remap!(csf.F_E, atmos_sim.integrator.p.ρ_dif_flux_q_tot)
dummmy_remap!(csf.F_A, atmos_sim.integrator.p.ρ_flux_h_tot)
dummmy_remap!(csf.F_E, atmos_sim.integrator.p.ρ_flux_q_tot)
dummmy_remap!(csf.F_R, level(atmos_sim.integrator.p.ᶠradiation_flux, half))
dummmy_remap!(csf.P_liq, atmos_sim.integrator.p.col_integrated_rain .+ atmos_sim.integrator.p.col_integrated_snow)
end
Expand Down Expand Up @@ -144,7 +144,7 @@ function atmos_pull!(cs)
@assert all(i -> parent(beta_sfc_cpl)[i] == 1, findall(==(1), parent(ice_fraction)))

# calculate turbulent fluxes on atmos grid and save in atmos cache
parent(atmos_sim.integrator.p.T_sfc) .= parent(T_sfc_cpl)
parent(TD.air_temperature.(thermo_params, atmos_sim.integrator.p.sfc_conditions.ts)) .= parent(T_sfc_cpl)
if :z0b in propertynames(atmos_sim.integrator.p.surface_scheme)
parent(atmos_sim.integrator.p.sfc_inputs.z0b) .= parent(z0b_cpl)
parent(atmos_sim.integrator.p.sfc_inputs.z0m) .= parent(z0m_cpl)
Expand Down
5 changes: 5 additions & 0 deletions experiments/AMIP/modular/coupler_driver_modular.jl
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
import RRTMGP
RRTMGP.Device.array_device(::Union{Array}) = RRTMGP.Device.CPU()
RRTMGP.Device.array_type() = Array


include("mpi/mpi_init.jl") # setup MPI context for distributed runs #hide

# # AMIP Driver
Expand Down
1 change: 1 addition & 0 deletions experiments/AMIP/moist_mpi_earth/atmos/atmos_init.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# atmos_init: for ClimaAtmos pre-AMIP interface
import ClimaAtmos
import ClimaAtmos.RRTMGPInterface as RRTMGPI

driver_file = joinpath(pkgdir(ClimaAtmos), "examples", "hybrid", "driver.jl")
ENV["CI_PERF_SKIP_RUN"] = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ function ke_dissipation(sim)
drag_uv =
Geometry.UVVector.(
Geometry.Covariant12Vector.(
sim.integrator.p.ρ_dif_flux_uₕ.components.data.:1,
sim.integrator.p.ρ_dif_flux_uₕ.components.data.:2,
sim.integrator.p.ρ_flux_uₕ.components.data.:1,
sim.integrator.p.ρ_flux_uₕ.components.data.:2,
)
)
dot.(Geometry.UVVector.(level(sim.integrator.u.c.uₕ, 1)), drag_uv) .* level(sim.integrator.u.c.ρ, 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ function calculate_surface_fluxes_atmos_grid!(integrator, info_sfc)
Fields.bycolumn(axes(Y.c.uₕ)) do colidx
get_surface_fluxes!(Y, p, colidx)
# corrections (accounting for inhomogeneous surfaces)
@. p.ρ_dif_flux_h_tot[colidx] = # checking right quantity in ClimaAtmos v0.11.0
@. p.ρ_flux_h_tot[colidx] = # checking right quantity in ClimaAtmos v0.11.0
-Geometry.WVector(correct_e_over_ice(p.surface_conditions[colidx], ice_mask[colidx]))
@. p.ρ_dif_flux_q_tot[colidx] =
@. p.ρ_flux_q_tot[colidx] =
-Geometry.WVector(correct_q_over_ice(p.surface_conditions[colidx], ice_mask[colidx]))
end
end
Expand Down
4 changes: 2 additions & 2 deletions experiments/AMIP/moist_mpi_earth/push_pull.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ updates F_A, F_R, P_liq, and F_E in place based on values used in the atmos_sim
function atmos_push!(cs)
atmos_sim = cs.model_sims.atmos_sim
csf = cs.fields
dummmy_remap!(csf.F_A, atmos_sim.integrator.p.ρ_dif_flux_h_tot)
dummmy_remap!(csf.F_E, atmos_sim.integrator.p.ρ_dif_flux_q_tot)
dummmy_remap!(csf.F_A, atmos_sim.integrator.p.ρ_flux_h_tot)
dummmy_remap!(csf.F_E, atmos_sim.integrator.p.ρ_flux_q_tot)
dummmy_remap!(csf.F_R, level(atmos_sim.integrator.p.ᶠradiation_flux, half))
dummmy_remap!(csf.P_liq, atmos_sim.integrator.p.col_integrated_rain .+ atmos_sim.integrator.p.col_integrated_snow)
end
Expand Down

0 comments on commit 97dbb84

Please sign in to comment.