Conversation
Moves SSH calculation to the VertCoord class and computes it as a single layer instead of a multi level field.
| LocZInterf(ICell, KLyr) = -LocBotDepth(ICell) + Accum; | ||
| LocZMid(ICell, KLyr) = | ||
| -LocBotDepth(ICell) + Accum - 0.5 * DZ; | ||
| if (KLyr == 0) { |
There was a problem hiding this comment.
Shouldn't this be the following?
| if (KLyr == 0) { | |
| if (KLyr == KMin) { |
There was a problem hiding this comment.
Oh yes, definitely. I'll fix that
|
Testing Barotropic channel With omega/develop layer thickness at the 10th step in the top layer are with this PR In the single column test case, also confirmed that when using pseudoThickness in the input file from polaris the ZMid and ZInterface values look as expected and SshCell is 0 as expected. Currently running the omega_pr suite on perlmutter. Will update when finished. |
|
A note that this PR breaks the manufactured solution tests b/c it provides geometric thickness. This would need the Polaris addition of PseudoThickness and renaming in Omega, or alternatively we could add a bit of code to Omega to convert to pseudothickness if layerthickness is provided. Any thoughts on how to proceed? |
|
@vanroekel This draft PR converts geometric thickness to pseudo-thickness in the initial condition E3SM-Project/polaris#460. I have also planned to include in this PR a conversion from pseudo-thickness to geometric thickness in the reading of model output. Would this address the issue you're seeing? |
So in the processing of test results it would convert back? That would be excellent. I do think for the planar manufactured solutions we'd need to provide a temperature / salinity for the pseudo thickness, but if we did I think that + your PR would address things. |
Exactly. I'll check in with you about the development timing so that this PR doesn't get held up. |
This PR adds ProvThickness to LayerThicknessAux, which is needed by the tracer equations. PR E3SM-Project#335 removes SSH from LayerThicknessAux and removes computeVarsOnCells from computeMomAux.
The current SSH calculation is designed for stacked shallow water only and was causing issues (such as NaNs in the barotropic channel case) in current tests. The SSH calculation is moved to the VertCoord class and computed alongside ZMid and ZInterface
Checklist
Testingwith the following:have been run on and indicate that are all passing.
has passed, using the Polaris
e3sm_submodules/Omegabaseline-pfor both the baseline (Polarise3sm_submodules/Omega) and the PR buildresolves #321
resolves #332