Skip to content
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

Add relaxed slab ocean mode #6798

Merged
merged 12 commits into from
Jan 14, 2025
Merged

Conversation

whannah1
Copy link
Contributor

@whannah1 whannah1 commented Dec 4, 2024

The relaxed slab ocean (RSO) is implemented as a simpler alternative to the traditional slab ocean
mode that requires externally generated heat flux data that represents the effects of ocean transport
on ocean surface temperature. In RSO mode we want to relax to a target SST field using only a
specified mixed layer depth to allow things like cold wakes following a tropical cyclone.

Also add documentation for this mode of the data ocean model.

[BFB]

@whannah1 whannah1 added the BFB PR leaves answers BFB label Dec 17, 2024
@whannah1 whannah1 force-pushed the whannah/docn/add-relaxed-slab-ocean branch from 8f1d9b3 to 5a79da2 Compare December 17, 2024 20:16
Copy link

github-actions bot commented Dec 17, 2024

PR Preview Action v1.6.0

🚀 View preview at
https://E3SM-Project.github.io/E3SM/pr-preview/pr-6798/

Built to branch gh-pages at 2025-01-13 16:44 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@@ -0,0 +1,60 @@
# Data Ocean - Idealized
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest putting the data ocean docs in one file instead of splitting them up. the TOC mkdocs generates on the rhs will make it easier to navigate the material.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it would be too much material for a single page. I was thinking that it would be good to add some plots of my RSO tests to show what it does to the model in a longer run. And for the others I was thinking we might want to eventually add some instructions to generate new SST datasets. Maybe I'm suffering from premature optimization.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reorganized the data ocean docs to put it all on a single page.

@whannah1
Copy link
Contributor Author

whannah1 commented Dec 20, 2024

I wanted to get a sense of the long-term impact of using this new RSO mode - both to check that the SST would stay close to the target values and what sort of systematic response could be seen in other fields and over land.

The plot below shows 5-yr F2010 simulations (EAMv3) and differences between the RSO case and control. They both use the same data ocean data and the RSO is configured to use a globally uniform mixed layer depth.

There is a systematic "el-Nino-like" difference in the SST... But obviously this is nothing like a real ENSO mode, and we can see warmer SST along most of the equatorial region, so I think we're just seeing the effect of warming where the insolation is the strongest. This sort of thing should disappear in a "traditional" SOM simulation because there would be strong cooling by Q-fluxes along the equator to represent the equatorial upwelling - which is not represented in the RSO mode. Similarly, there's a notable cooling along the western boundary currents and warming in regions of strong coastal upwelling that would be counteracted by Q-fluxes in a traditional SOM.

The changes over land are reminiscent of maps of surface temperature regressed on an ENSO index, but I couldn't find a good example from a quick literature search. If my intuition/memory is right on this, then perhaps the land temperature changes are not that surprising given the pattern of SST changes.

I think it's important for us to be aware of these systematic changes when using the RSO mode. For short TC hindcasts it likely won't be a problem, but I would not want to use this for longer simulations due to the biases that it will introduce.

image

@whannah1 whannah1 force-pushed the whannah/docn/add-relaxed-slab-ocean branch from 244c6b2 to 99ab6ba Compare January 3, 2025 16:50
@whannah1 whannah1 changed the title [WIP] Add relaxed slab ocean mode Add relaxed slab ocean mode Jan 3, 2025
@rljacob rljacob self-assigned this Jan 7, 2025
@rljacob
Copy link
Member

rljacob commented Jan 7, 2025

@whannah1 any suggestions for who else could review this?

@whannah1
Copy link
Contributor Author

whannah1 commented Jan 7, 2025

Perhaps @singhbalwinder could take a look?

@rljacob rljacob requested a review from singhbalwinder January 8, 2025 01:38
Copy link
Contributor

@singhbalwinder singhbalwinder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! A very well written and clean code with documentation! I left a very minor comment.

Comment on lines 822 to 824
RSO_Tdeep = 271.00 ! deep water temperature [K]
RSO_dT_o = 27.0 ! scaling temperature gradient
RSO_h_o = 30.0 ! scaling mixed layer depth
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing some of these. If you do not want to add _r8, the numeric literals should be assigned to variables as integers to maintain precision. Assigning variables with numbers with decimals (e.g., 30.0) will reduce their precision to single precision.

Suggested change
RSO_Tdeep = 271.00 ! deep water temperature [K]
RSO_dT_o = 27.0 ! scaling temperature gradient
RSO_h_o = 30.0 ! scaling mixed layer depth
RSO_Tdeep = 271 ! deep water temperature [K]
RSO_dT_o = 27 ! scaling temperature gradient
RSO_h_o = 30 ! scaling mixed layer depth

Being explicit and adding _r8 (e.g., 30.0_r8) is still a better approach, as it will make it clear to the reader that these are real numbers. Declaring them as parameters is also preferable if these variables will stay constant during time-stepping.

Copy link
Contributor Author

@whannah1 whannah1 Jan 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I like those suggestions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

rljacob added a commit that referenced this pull request Jan 9, 2025
The relaxed slab ocean (RSO) is implemented as a simpler alternative to the traditional slab ocean
mode that requires externally generated heat flux data that represents the effects of ocean transport
on ocean surface temperature. In RSO mode we want to relax to a target SST field using only a
specified mixed layer depth to allow things like cold wakes following a tropical cyclone.

[BFB]
@rljacob rljacob added the NML label Jan 12, 2025
@rljacob
Copy link
Member

rljacob commented Jan 12, 2025

Noting that this creates NML diffs in all data ocean cases.

rljacob added a commit that referenced this pull request Jan 14, 2025
Second merge of this branch. Fix runtime error with EAM SCM cases.
@rljacob rljacob merged commit eb41e86 into master Jan 14, 2025
10 checks passed
@rljacob rljacob deleted the whannah/docn/add-relaxed-slab-ocean branch January 14, 2025 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BFB PR leaves answers BFB data-ocean eam NML
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants