-
Notifications
You must be signed in to change notification settings - Fork 52
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
Fix and improve anomaly forcings for ISSP cases #292
Conversation
@ekluzek, a few questions:
<default_value>''</default_value>
<value compset="^SSP126_">Anomaly.Forcing.cmip6.ssp126</value> |
@samsrabin is this ready- if not can you make it a draft please. |
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's not clear to me that anomaly_forcing will always be defined and be an array.
Force-pushed to remove premature merge of main into this branch, which was interfering with my testing. |
@ekluzek This is ready, if you'd like to review! |
Note that this is up-to-date with cdeps1.0.34. If you'd like me to merge in the latest tag, let me know and I'll redo the testing. |
@jedwards4b This is ready to review, and @ekluzek will also make some time to look at it in the next few days. It would be nice if we can get it in soon. |
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.
Really glad you took this on. This is so great to have coming in. I'm suggesting some changes.
I think it would be better to be data driven rather than code driven. And I layout a mostly fleshed out plan on how to do that. You'll need to make sure that all works, but I think it will and it's an improvement over some of the limitations of a part of what's in here.
We should get together to go over all of this. I also have some questions about one set of changes that would be good for you to explain.
This reverts commit 3f36622b3bd6358d324f1aca5e90009db306963e, which tried to do this in namelist_definition_datm.xml, and instead does it in datm/cime_config/buildnml. Only looks at compset if anomaly_forcing not specified in namelist.
…rounding quote marks.
Re-requesting review from @ekluzek, because it seems like I've already addressed his concern. If approved, I'll continue by merging in the latest CTSM tag into ESCOMP/CTSM#2686 and the corresponding CDEPS tag here. |
Re-pinging @ekluzek for review, since @jedwards4b seems to think things are fine as is. |
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.
Thanks for your work here @samsrabin. I really like the simplification you figured out for this. And I like that AF forcing streams have the SSP name in them. And I like that you added the "none" option.
There are two things that I think deserve a discussion, so I'll make them into issues, and if we think they are important could come in a future PR.
The only suggestion I have at this point is to add a comment about the new tests added. But, still marking this as approve so you don't have to wait on me.
cmip5 and cmip6 anomalies were generated only with GSWP3, so buildnml now errors if DATM_MODE isn't CLMGSWP3v1. However, the user can override this by setting the XML variable DATM_MODE_ANOMALY_FORCING_MISMATCH to TRUE.
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.
This is a nice addition of good error checking for Anomaly Forcing (AF), which I think is really important to have in place. So thanks for doing this! The code is clean and clear, so good work.
I put two questions in. Longer term I'd like to have the type of forcing for AF to be in the XML data in some form, so it isn't hardcoded in the python. But, as there's only one option now, it doesn't need to start that way.
The other question is the importance of the new namelist variable option. If this is really going to be rarely used it might be good to NOT have it in the XML. But, have clear instructions on how to do. This makes the model easier to use for people by leaving off the most complex options if we think they won't be used often. But, that's up to you.
So thanks for your work here. This is great to see coming in.
@jedwards4b I think this is ready! |
@samsrabin can you merge main into your branch or give me permission to push to your fork? |
@jedwards4b Done! |
Description of changes
Fixes a bug, and also makes it much simpler to run land-only SSP cases.
Specific notes
Contributors other than yourself, if any: @ekluzek
CDEPS Issues Fixed (include github issue #):
Are there dependencies on other component PRs (if so list): This doesn't depend on other components. However, I will soon submit a PR to CTSM that depends on this branch. (See issue ESCOMP/CTSM#2301.)
Are changes expected to change answers (bfb, different to roundoff, more substantial): Substantial, but only if people were being bitten by #258 before.
Any User Interface Changes (namelist or namelist defaults changes): Yes.
Adds
anomaly_forcing
options:Anomaly.Forcing.cmip5.rcp45
Anomaly.Forcing.cmip6.ssp126
Anomaly.Forcing.cmip6.ssp245
Anomaly.Forcing.cmip6.ssp370
Anomaly.Forcing.cmip6.ssp585
Removes all variable-specific
anomaly_forcing
options.Testing performed (e.g. aux_cdeps, CESM prealpha, etc):
datm_ssp126_anom_forc
, is bit-for-bit identical to previous version (ctsm5.2.015
).aux_cdeps
test of SSP585 compset, added the 3 other SSP compsets. Allaux_cdeps
SSP tests show diffs as expected fromcdeps1.0.34
.Hashes used for testing:
Remaining work
anomaly_forcing
is automatically set for eachISSP
compsetanomaly_forcing
in the generateddatm_in
: Fix that. (Note that the anomaly forcing file IS correctly being put indatm.streams.xml
.)