@@ -14,9 +14,10 @@ function build_soil_energy_model(arch, ::Type{NF}) where {NF}
1414 return model
1515end
1616
17- function mean_soil_temperature_step! (state, timestepper, model, inputs, Δt)
18- timestep! (state, timestepper, model, inputs, Δt)
19- return mean (interior (state. temperature))
17+ function mean_soil_temperature_step! (integrator, timestepper, Δt)
18+
19+ timestep! (integrator, timestepper, Δt)
20+ return mean (interior (integrator. state. temperature))
2021 # TODO : Figure out why this is segfaulting in Enzyme
2122 # Answer: Average operator is not type inferrable, see:
2223 # https://github.com/CliMA/Oceananigans.jl/issues/4869
6768@testset " Soil energy model: timestep!" begin
6869 model = build_soil_energy_model (CPU (), Float64)
6970 integrator = initialize (model, ForwardEuler ())
70- inputs = integrator. inputs
71- state = integrator. state
72- dstate = make_zero (state)
71+ dintegrator = make_zero (integrator)
7372 stepper = integrator. timestepper
7473 dstepper = make_zero (stepper)
75- @time Enzyme. autodiff (set_runtime_activity (Reverse), mean_soil_temperature_step!, Active, Duplicated (state, dstate ), Duplicated (stepper, dstepper), Const (model), Const (integrator . inputs ), Const (integrator. timestepper. Δt))
76- @test all (isfinite .(dstate . temperature))
74+ @time Enzyme. autodiff (set_runtime_activity (Reverse), mean_soil_temperature_step!, Active, Duplicated (integrator, dintegrator ), Duplicated (stepper, dstepper), Const (integrator. timestepper. Δt))
75+ @test all (isfinite .(dintegrator . state . temperature))
7776end
0 commit comments