add_MARBL (compute): refactor caps after CFC updates from Keith are merged in
mnlevy1981 opened this issue · comments
Keith stumbled on the call_tracer_set_forcing()
subroutine:
https://github.com/mnlevy1981/MOM6/blob/becd34f/src/tracer/MOM_tracer_flow_control.F90#L396-L419
He is going to add a call to this function to the NUOPC cap and then use it to set CFC forcings; once that code is available on dev/ncar
, I should update the MARBL branch to call convert_marbl_IOB_to_forcings()
from this same subroutine instead of calling it directly from the caps. This will reduce code duplication between the NUOPC cap and solo_driver/
, plus make it easier to port MARBL setup to another cap.
I should update the MARBL branch to call
convert_marbl_IOB_to_forcings()
from this same subroutine instead of calling it directly from the caps.
I'm not sure this is correct; the real change is that we should be calling MARBL_instances%surface_flux_compute()
from MARBL_tracers_set_forcing()
; I think we still need the cap to be responsible for populating the forcing
object from the ice_ocean_boundary_type
object.
(Also, those CFC changes are available on dev/ncar
now)
After further discussion, this change is on hold and I'm going to close this ticket.
Right now, computing MARBL surface fluxes in MARBL_tracers_column_physics()
, we are getting SST and SSS from tv
and using the most recent tracer_data
to get surface values for the MARBL tracers. Moving the computation to set_forcing
will potentially introduce a lag (we would be getting these values at the beginning of each coupling interval), and we expect the change to be small so it's not a priority to investigate.