mnlevy1981 / MOM6

Modular Ocean Model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.