Fix bug in registration of ALE sponge diagnostics for generic tracers #1003
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In NOAA-GFDL/CEFI-regional-MOM6#250, @CGjelstrup reported an issue where enabling the generic tracer sponge/nudging caused a crash due to an unregistered sponge tendency diagnostic. The issue was caused by the order in which the registration code for the sponge diagnostics and generic tracers is called--the sponge diags are registered before the generic tracers are set up, so the generic tracer sponge tendency diagnostics are never registered.
This PR fixes the issue by relocating the call to
init_ALE_sponge_diagsso that it is aftertracer_flow_control_init. It also makes sure that the array of sponge tendency diag ids,id_sp_tendency, is immediately initialized to -1s to help avoid any future bugs.For immediately initializing
id_sp_tendencyto -1s, I didI don't think this hack with
reshapeis done anywhere else in MOM6, but it was the best/only way I could figure out to initialize within atypedeclaration. If there's any issues with this just let me know.Also, I have this same PR open in the CEFI fork of MOM6---if you'd prefer it to go through CEFI first we could do that.