-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor bkgerrstddev into a saber block #1085
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Nice, our group has been looking at this part of the code lately and we are coming up with some questions. Could we expand on the parametric part, for instance bumping SSS error around major river outputs? We could use a static "river map" input of sorts and this could be an optional setting. One (obvious) thought we were pondering beyond this is to be able to use atmospheric fields, say cloud cover for large storms. Other than surface fluxes, can SOCA access/utilize any atmospheric fields? Is Also, please keep the documentation effort going like you mention here. |
@Dooruk, yes. The easiest and most flexible thing for me is to make the SSS error read from a file like the SST error is. I can add that capability in a follow-up PR. We could read in atmospheric fields, but that would require you to interpolate them onto the MOM grid offline, then add them to the MOM state. |
This is ready for merge. Does anyone else have time for a second review? (@guillaumevernieres @Dooruk ?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good to me! and it builds fine and all the tests pass except the test 39 for ref. mismatch reasons. I do not see it failing in travis-CI. Anyway it isn't related to this PR.
@HamidehGMAO running on Discover I'm assuming? Intel or GCC? It would be nice to update the reference answers at some point. |
yeah! running on discover and using intel, spack stack 1.7 |
ignore this comment
|
Well, I just tested 5-deg within the Swell context rather than my sandbox and it worked there.. so it was just a fluke. I will test with 0.25-deg next. |
Description
This PR converts the existing
BkgErrGodas
linear variable change into aParametricOceanStdDev
saber block (that lives in the SOCA repo for now), written in C++jedi-ci-test-select=intel
Why?
diffusion
, I'll save moving it out of SOCA for a later PR (once we're sure it works as intended and is indeed generic)oops::Diffusion
class to smooth the resulting stddev by the length scales. Much less noisy now (see images below), the scales by which the fields are smoothed can be configured. Unlike with the correlation operator, no offline parameters need to be calculated to use the smoothing (since there is no normalization)Also,
Usage:
The saber block has reasonable default values set (in an effort to keep outside collaborators from trying to do crazy things), so, for example you could use a minimum yaml such as
this will still enable the smoothing by default.
Or, if you want to set parameters explicitly, see what is given in the
testinput/dirac_parametric_ocean_stddev.yml
file, or look at the parameters class insrc/soca/SaberBlocks/ParametricOceanStdDev/ParametricOceanStdDev.h
(real documentation will be coming, I promise!)Testing
This is the T bkg error at lvl 15 (very noisy

Same level but with this new saber block, where the stddev is smoothed by the Rossby radius
