redundant points when using oblique_tan OBC option
Opened this issue · 1 comments
When using the OBLIQUE_TAN OBC option on a J boundary (J=0 or J=N) there is a bug producing redundant values at u points. Some of these redundant values are round off level errors, but some are comparable to the size of the variable.
I found this issue while testing the ESMG Bering case using FMS2. Note that the version on github is using ORLANSKI and ORLANSKI_TAN OBCs.
The redundant points first occur after the horizontal viscosity update in MOM_dynamics_split_RK2 in CS%diffu and then are incorporated into the u_bc_accel. There are several instances where the OBCs are used in the horizontal_viscosity subroutine that could be the source of this error.
With the OBC options: FLATHER,OBLIQUE,NUDGED, and NUDGED_TAN this issue did not occur, it was only when OBLIQUE_TAN was added that the redundant points occurred.
Other things to note:
(1) only an issue when OBCs were at J boundaries
(2) impacts all layers (only a subset of the errors are shown below)
(3) may be only impacting points in the row i=4 (the PE number us cut off on the error messages)
(4) only impacted u components/velocities
(5) this case used a land mask and variable mixing
Example of the redundant point output:
before corr pre-btstep CS%diff Layer 1 redundant u-components -2.5538E-09 -2.5470E-09 differ by -6.7866E-12 at i,j = 4 5 on
before corr pre-btstep CS%diff Layer 1 redundant u-components 2.6922E-08 2.6419E-08 differ by 5.0270E-10 at i,j = 4 5 on
before corr pre-btstep CS%diff Layer 1 redundant u-components -1.7640E-08 -1.7735E-08 differ by 9.5510E-11 at i,j = 4 5 on
before corr pre-btstep u_bc_accel Layer 1 redundant u-components 2.7154E-06 2.7153E-06 differ by 9.5510E-11 at i,j = 4 5
before corr pre-btstep u_bc_accel Layer 1 redundant u-components 2.6223E-06 2.6223E-06 differ by -6.7866E-12 at i,j = 4 5
before corr pre-btstep u_bc_accel Layer 1 redundant u-components 6.5393E-06 6.5388E-06 differ by 5.0270E-10 at i,j = 4 5
This should be tested again, but it might be fixed.