@@ -185,11 +185,11 @@ Interfacer.get_field(sim::ClimaAtmosSimulation, ::Val{:thermo_state_int}) =
185185 CC. Spaces. level (sim. integrator. p. precomputed. ᶜts, 1 )
186186Interfacer. get_field (atmos_sim:: ClimaAtmosSimulation , :: Val{:water} ) =
187187 ρq_tot (atmos_sim. integrator. p. atmos. moisture_model, atmos_sim. integrator)
188- function Interfacer. update_field! (sim:: ClimaAtmosSimulation , :: Val{:surface_temperature} , csf )
188+ function Interfacer. update_field! (sim:: ClimaAtmosSimulation , :: Val{:surface_temperature} , field )
189189 # note that this field is also being updated internally by the surface thermo state in ClimaAtmos
190190 # if turbulent fluxes are calculated, to ensure consistency. In case the turbulent fluxes are not
191191 # calculated, we update the field here.
192- sim. integrator. p. radiation. rrtmgp_model. surface_temperature .= CC. Fields. field2array (csf . T_sfc )
192+ sim. integrator. p. radiation. rrtmgp_model. surface_temperature .= CC. Fields. field2array (field )
193193end
194194# extensions required by FluxCalculator (partitioned fluxes)
195195Interfacer. get_field (sim:: ClimaAtmosSimulation , :: Val{:height_int} ) =
258258
259259Interfacer. reinit! (sim:: ClimaAtmosSimulation ) = Interfacer. reinit! (sim. integrator)
260260
261+ """
262+ Extend Interfacer.add_coupler_fields! to add the fields required for ClimaAtmosSimulation.
263+
264+ The fields added are:
265+ - `:surface_direct_albedo` (for radiation)
266+ - `:surface_diffuse_albedo` (for radiation)
267+ - `:ϵ_sfc` (for radiation)
268+ - `:T_sfc` (for radiation)
269+ - `:q_sfc` (for moisture)
270+ """
271+ function Interfacer. add_coupler_fields! (coupler_field_names, :: ClimaAtmosSimulation )
272+ atmos_coupler_fields = [:surface_direct_albedo , :surface_diffuse_albedo , :ϵ_sfc , :T_sfc , :q_sfc ]
273+ push! (coupler_field_names, atmos_coupler_fields... )
274+ end
275+
261276function FieldExchanger. update_sim! (atmos_sim:: ClimaAtmosSimulation , csf, turbulent_fluxes)
262277
263278 u = atmos_sim. integrator. u
@@ -269,7 +284,7 @@ function FieldExchanger.update_sim!(atmos_sim::ClimaAtmosSimulation, csf, turbul
269284 ! (p. atmos. insolation isa CA. IdealizedInsolation) && CA. set_insolation_variables! (u, p, t, p. atmos. insolation)
270285 Interfacer. update_field! (atmos_sim, Val (:surface_direct_albedo ), csf. surface_direct_albedo)
271286 Interfacer. update_field! (atmos_sim, Val (:surface_diffuse_albedo ), csf. surface_diffuse_albedo)
272- Interfacer. update_field! (atmos_sim, Val (:surface_temperature ), csf)
287+ Interfacer. update_field! (atmos_sim, Val (:surface_temperature ), csf. T_sfc )
273288 end
274289
275290 if turbulent_fluxes isa FluxCalculator. PartitionedStateFluxes
0 commit comments