In marbl_interior_tendency_mod:L3021, we have a mechanism to set [sinking particulate type]%flux_at_ref_depth when we find the depth containing particulate_flux_ref_depth_cm; if the reference depth is above the ocean floor then we use the flux at the layer containing the reference depth, and if the reference depth is between the ocean floor and the bottom of the column we set the flux to 0.
This worked fine with POP, where shallower columns had fewer active layers than deeper columns but depths below the ocean floor were still included in the column. In MOM, there are options for the vertical levels that make it possible for the bottom-most depth of the column to be above the reference depth. In these cases, [sinking particulate type]%flux_at_ref_depth is unchanged from whatever value happens to be in memory from the previous column.
Currently we rely on the GCM driver to mask out 2D diagnostics where the reference depth is below the ocean floor, but it would be nice to have a mechanism for MARBL to handle this as well. The easiest solution is probably to initialize [sinking particulate type]%flux_at_ref_depth in set_surface_particulate_terms(), but that still raises two questions:
should we initialize these fluxes to 0, or should we have the GCM provide a fill value during initialization? (perhaps the default fill value would be 0?)
what should we rename set_surface_particulate_terms()? We want to avoid terms like init in the function name, since it is not called during the initialization phase. Perhaps reset_particulate_terms()?
I should note that I looked in the CISO module, and I don't think there is a corresponding block of code to modify for the carbon isotopes. If there is, it does not use a variable with ref_depth in its name.
In
marbl_interior_tendency_mod:L3021
, we have a mechanism to set[sinking particulate type]%flux_at_ref_depth
when we find the depth containingparticulate_flux_ref_depth_cm
; if the reference depth is above the ocean floor then we use the flux at the layer containing the reference depth, and if the reference depth is between the ocean floor and the bottom of the column we set the flux to 0.This worked fine with POP, where shallower columns had fewer active layers than deeper columns but depths below the ocean floor were still included in the column. In MOM, there are options for the vertical levels that make it possible for the bottom-most depth of the column to be above the reference depth. In these cases,
[sinking particulate type]%flux_at_ref_depth
is unchanged from whatever value happens to be in memory from the previous column.Currently we rely on the GCM driver to mask out 2D diagnostics where the reference depth is below the ocean floor, but it would be nice to have a mechanism for MARBL to handle this as well. The easiest solution is probably to initialize
[sinking particulate type]%flux_at_ref_depth
inset_surface_particulate_terms()
, but that still raises two questions:0
, or should we have the GCM provide a fill value during initialization? (perhaps the default fill value would be0
?)set_surface_particulate_terms()
? We want to avoid terms likeinit
in the function name, since it is not called during the initialization phase. Perhapsreset_particulate_terms()
?