-
Notifications
You must be signed in to change notification settings - Fork 167
ROMS option to have model_interpolate salinity units in kg/kg (default) or g/kg #1008
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
base: main
Are you sure you want to change the base?
Conversation
…fualt) or g/kg fixes #1003
mgharamti
left a comment
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.
Very Good! I'll need to test a filtering cycle with those changes.
As far as units, you're correct PSU is not technically g/kg but very close to it. The reason for that is because it's defined using conductivity ratios and not mass fraction. Thought, it is well accepted that: S{kg/kg} = S{psu}/1000
| * - ``convert_salinity_to_kgkg`` | ||
| - `logical` | ||
| - `.true.` | ||
| - If true, module_interpolate salinity output is converted to kg/kg, otherwise PSU (g/g) is used. Be sure to match observation units. |
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.
PSU (g/kg)
| integer :: assimilation_period_seconds = 0 ! Assimilation window in secs | ||
| real(r8) :: perturbation_amplitude = 0.02 ! Perturbation size for generating an ensemble | ||
| integer :: debug = 0 ! Turn up for more debug messages | ||
| logical :: convert_salinity_to_kgkg = .true. ! model_interpolate salinity ouput in kg/kg |
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.
I would default this to .false. and add it to the input.nml given its importance
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.
Chatting with the WHOI folks about this who agree, PSU is the way to go as the default.
Crocolake converter - PSU
MOM6, ROMS - option to have /1000 so you can use the dart bank of WOD obs on glade, but default is PSU.
- Crocolake converter - PSU https://github.com/NCAR/DART/blob/main/observations/obs_converters/CrocoLake/convert_crocolake_obs.py#L169-L171
- MOM6 - option to have /1000 so you can use the dart bank of obs, but default is PSU.
- ROMS - option to have /1000 so you can use the dart bank of obs, but default is PSU.
- WOD converter option to have /1000 or not. Default not for new obs
- [ ] new version of existing WOD on /glade/ ? *1000? - GTSPP
- @hkershaw-brown release notes for this need to be clear for MOM6 users & converters.
⚠️ 🧇 BREAKING CHANGE.
| expected_obs = sensible_temp(expected_T, expected_S, pdbar) | ||
| endif | ||
|
|
||
| if (convert_salinity_to_kgkg .and. qty == QTY_SALINITY) expected_obs = expected_obs / CONCENTRATION_TO_PPT |
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.
good. This is the right location. We don't want to do that prior to the sensible temperature computation (we need salinity to be in PSU there).
Description:
ROMS option to have model_interpolate salinity units in kg/kg (default) or g/kg
The converters we have in the dart repo: wod, GTSPP, give salinity in kg/kg
I believe this choice of kg/kg for units was for POP. There is no concept of units in observation sequence files or obs_def which is not ideal, but a larger topic beyond the scope of this pull request.
The namelist option allows users to use observation sequences generated outside dart (g/kg)
It would be good to get some oceanography input on this because I am not sure if this pull request is the correct thing to do. There seems to be differing references on whether psu (dimensionless) is exactly the same as g/kg
I'm following this convention:
1ef07d8
and using /1000. But maybe this is not correct.
Fixes issue
fixes #1003
Types of changes
Documentation changes needed?
Tests
Please describe any tests you ran to verify your changes.
PMO to take a look at interpolated values
Checklist for merging
Checklist for release
Testing Datasets