roms_tools.BGCMarbl.derivation_rules

roms_tools.BGCMarbl.derivation_rules#

classmethod BGCMarbl.derivation_rules() tuple[tuple[str, str, Callable], ...]#

Every (target, source, transform) this model derives, in apply order.

One definition of the math, read by both the public derive_* helpers below and by process_bgc_fields(). Keeping them in step matters: the two used to carry independent copies of the same expressions, so a change to one silently diverged from the other.

Each transform takes exactly one DataArray (the source tracer) and returns one, which is what _ForcingBGCAdapter.assign_derived applies per boundary suffix. Nothing here reads a derived tracer, so the order only fixes which variable appears first in the output.

Returns:

tuple[tuple[str, str, Callable], …](target_name, source_name, transform) triples.