Skip to content

Commit 2bf196d

Browse files
committed
update land energy/water conservation functions
1 parent eb8d2dd commit 2bf196d

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

experiments/ClimaEarth/components/land/climaland_integrated.jl

+24-2
Original file line numberDiff line numberDiff line change
@@ -389,13 +389,35 @@ Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:area_fraction}) = sim.area
389389
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:beta}) =
390390
CL.surface_evaporative_scaling(sim.model, sim.integrator.u, sim.integrator.p)
391391
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:emissivity}) = sim.integrator.p.ϵ_sfc
392-
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:energy}) = CL.total_energy(sim.integrator.u, sim.integrator.p)
393392
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:surface_direct_albedo}) =
394393
CL.surface_albedo(sim.model, sim.integrator.u, sim.integrator.p)
395394
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:surface_diffuse_albedo}) =
396395
CL.surface_albedo(sim.model, sim.integrator.u, sim.integrator.p)
397-
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:water}) = CL.total_water(sim.integrator.u, sim.integrator.p)
398396
Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:surface_temperature}) = sim.integrator.p.T_sfc
397+
function Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:energy}, level)
398+
return sum(
399+
CL.total_energy_per_area!(
400+
surface_field,
401+
sim.model,
402+
sim.integrator.u,
403+
sim.integrator.p,
404+
sim.integrator.t,
405+
sim.integrator.p.soil.sfc_scratch,
406+
),
407+
)
408+
end
409+
function Interfacer.get_field(sim::ClimaLandSimulation, ::Val{:water}, level)
410+
return sum(
411+
CL.total_liq_water_vol_per_area!(
412+
surface_field,
413+
sim.model,
414+
sim.integrator.u,
415+
sim.integrator.p,
416+
sim.integrator.t,
417+
sim.integrator.p.soil.sfc_scratch,
418+
),
419+
)
420+
end
399421

400422
# Update fields stored in land model sub-components
401423
function Interfacer.update_field!(sim::ClimaLandSimulation, ::Val{:area_fraction}, field)

0 commit comments

Comments
 (0)