MOM6 icon indicating copy to clipboard operation
MOM6 copied to clipboard

potential issue with neutral diffusion diagnostics when multiple iterations per timestep occur

Open klindsay28 opened this issue 2 years ago • 3 comments

The post_data calls for neutral diffusion diagnostics occur within the subroutine neutral_diffusion. This subroutine is called from subroutine tracer_hordiff inside a sub-cycling iteration loop that is there to avoid violating diffusive CFL limits. If there are multiple iterations because of CFL limits, then there are multiple calls to post_data per timestep for these diagnostics.

Note that advection diagnostics are handled differently. While advection can be sub-cycled, the advection diagnostics are accumulated across these iterations, and the post_data calls are outside of the iteration loop.

The potentially multiple calls per timestep to post_data for neutral diffusion diagnostics result in multiple calls per timestep to FMS's send_data. Does FMS handle multiple send_data calls per timestep for individual diagnostics?

The same question applies to diagnostics for lateral boundary mixing, whose implementation closely follows the neutral diffusion implementation.

klindsay28 avatar Feb 07 '22 22:02 klindsay28

No, FMS does not handle multiple post_data calls per timestep gracefully, so it is up to the MOM6 code to accumulate the net transports across multiple iterations. The construct noted with this issue is a bug and should be fixed.

Hallberg-NOAA avatar Mar 12 '22 16:03 Hallberg-NOAA

@klindsay28, are there ongoing efforts to fix this via the dev/ncar fork, or should we try to organize someone to address this bug?

Hallberg-NOAA avatar Jun 03 '22 18:06 Hallberg-NOAA

@Hallberg-NOAA, I am working on this on the dev/ncar fork. Thanks for asking.

klindsay28 avatar Jun 06 '22 20:06 klindsay28