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

Fix and improve anomaly forcings for ISSP cases #2686

Draft
wants to merge 28 commits into
base: master
Choose a base branch
from

Conversation

samsrabin
Copy link
Collaborator

@samsrabin samsrabin commented Aug 13, 2024

Description of changes

Fixes a bug, and also makes it much simpler to run land-only SSP cases. Depends on ESCOMP/CDEPS#292.

Specific notes

Contributors other than yourself, if any: @ekluzek

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)? Yes, for cases that were being bitten by #2301 before.

Any User Interface Changes (namelist or namelist defaults changes)? Yes; see ESCOMP/CDEPS#292.

Does this create a need to change or add documentation? Did you do so? Yes; yes.

  • Update docs

Testing performed, if any:

  • Existing datm_rcp45_anom_forc test unaffected as of 4b96267.
  • Existing datm_ssp126_anom_forc test unaffected as of c4ec313.

Remaining work

  • Pending complete ssp test suite: Remove datm_ssp*_anom_forc testmods, replacing tests using those with default
  • Resolve remaining TODO(s) in Running-with-anomaly-forcing.rst
  • In aux_clm suite, replace f09 ISSP126 test with 10x15 ISSP245 test? Would presumably be quicker to get through queue.
  • Delete tmp_scripts/.
  • Waiting on Fix and improve anomaly forcings for ISSP cases CDEPS#292: Point CDEPS external at updated tag.

@samsrabin samsrabin added the bug something is working incorrectly label Aug 13, 2024
@samsrabin samsrabin self-assigned this Aug 13, 2024
@samsrabin samsrabin added the usability Improve or clarify user-facing options label Aug 27, 2024
Branch ssp-fix: "anomaly_forcing now automatically set based on compset (ISSP*)." Also updates testmods accordingly.
Branch ssp-fix: Now actually sets anomaly_forcing based on compset.
Branch ssp-fix: Bugfix to future-proofing of datm buildnml.
@samsrabin samsrabin added the enhancement new capability or improved behavior of existing capability label Sep 5, 2024
@samsrabin samsrabin added blocked: dependency Wait to work on this until dependency is resolved external issue needs to be addressed elsewhere (submodule); issue here for the sake of project tracking labels Oct 8, 2024
@samsrabin
Copy link
Collaborator Author

Marking as blocked while I wait on the ESCOMP/CDEPS#292 PR.

@samsrabin
Copy link
Collaborator Author

@ekluzek Requesting your review as discussed. Note, however, that this is blocked until the CDPS-side PR (ESCOMP/CDEPS#292) is done. I don't have permissions to request your review there.

Copy link
Collaborator

@ekluzek ekluzek left a comment

Choose a reason for hiding this comment

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

Really glad to see this coming in, and appreciate all the work here. I have quite a few suggestions on changes. So we should meet to discuss this and the CDEPS PR.

url = https://github.com/ESCOMP/CDEPS.git
fxtag = cdeps1.0.34
url = https://github.com/samsrabin/CDEPS.git
fxtag = 25c7b920de8fdf1a90b00276a0d7b003b4a845a9
Copy link
Collaborator

Choose a reason for hiding this comment

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

This of course will need to change once we have a tag here.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I did review the CDEPS PR as well, and have quite a few suggestions there.

@@ -1989,6 +1989,7 @@
<machines>
<machine name="izumi" compiler="intel" category="aux_clm"/>
<machine name="derecho" compiler="nvhpc" category="aux_clm"/>
<machine name="derecho" compiler="nvhpc" category="ssp"/>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Ahhh, adding a new testlist for ssp. That sounds interesting.

I do suggest that you use intel or gnu here though, as we know there are problems with nvhpc.

@@ -2513,15 +2514,46 @@
<option name="comment" >Transient production future scenario SSP3-7.0 case with isotopes with a december 2050 start</option>
</options>
</test>
<test name="SMS_D_Ld5" grid="f09_g17" compset="ISSP126Clm50BgcCrop" testmods="clm/datm_ssp126_anom_forc">

<test name="SMS_D_Ld5" grid="f09_g17" compset="ISSP126Clm50BgcCrop" testmods="clm/default">
Copy link
Collaborator

Choose a reason for hiding this comment

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

We actually shouldn't have a testmod for this. We want to have this handled based on the compset, so you shouldn't need a testmod for it.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Or is this something particular about the ssp126 case? You don't do this with the other SSP's below...

</machines>
<options>
<option name="wallclock">00:20:00</option>
<option name="comment" >Transient production with anomaly forcing future scenario SSP1-2.6 case</option>
</options>
</test>
<test name="SMS_D_Ld5" grid="f10_f10_mg37" compset="ISSP245Clm50BgcCrop" testmods="clm/default">
<machines>
<machine name="derecho" compiler="intel" category="ssp"/>
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think maybe we add this one to aux_clm as well.

@@ -0,0 +1 @@
flanduse_timeseries = '$DIN_LOC_ROOT/lnd/clm2/surfdata_esmf/ctsm5.2.0/landuse.timeseries_0.9x1.25_SSP2-4.5_1850-2100_78pfts_c240216.nc'
Copy link
Collaborator

Choose a reason for hiding this comment

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

You shouldn't need to do this. And you are asking for the ctsm5.2 dataset, which isn't going to work.

So I think this testmod should be removed. But, I might be missing something.

@@ -0,0 +1,46 @@
#!/bin/bash
set -e
Copy link
Collaborator

Choose a reason for hiding this comment

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

What are these two scripts about? Something temporary needed while the PR is created and then removed at the last moment?

If so that's an interesting strategy that sounds useful.


Users may wish to also update files such as the landuse\_timeseries and aerosol and Ndepostion files to correspond to the appropriate SSP.
TODO: IS THIS ACTUALLY NEEDED?
Copy link
Collaborator

Choose a reason for hiding this comment

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

Good question.

It could be worth trying it without it to make sure it is required for all the fields. Setting it for some fields was required in the past, but may not be anymore.

@@ -5,41 +5,69 @@
==============================
Running with anomaly forcing
==============================
Because performing fully coupled climate simulations is computationally expensive, an alternate method of running land-only simulations forced by future climate projections was developed for CTSM called 'anomaly forcing'. The anomaly forcing method uses a previously completed fully coupled simulation to create monthly anomalies, relative to the present day, of near-surface atmospheric states and fluxes. These anomalies, representing the evolution of future climate projections, are applied to a repeating cycle of present day atmospheric forcing data, either as an additive (for states) or multiplicative (for fluxes) quantity. Thus, high-frequency variability is obtained from the present day atmospheric forcing data, while the long-term evolution of the climate is determined by the anomaly forcing dataset.
Because performing fully coupled climate simulations is computationally expensive, an alternate method of running land-only simulations forced by future climate projections was developed for CTSM called "anomaly forcing." The anomaly forcing method uses a previously-completed, fully-coupled simulation to create monthly anomalies, relative to the present day, of near-surface atmospheric states and fluxes. These anomalies, representing the evolution of future climate projections, are applied to a repeating cycle of present day atmospheric forcing data, either as an additive (for states) or multiplicative (for fluxes) quantity. Thus, high-frequency variability is obtained from the present day atmospheric forcing data, while the long-term evolution of the climate is determined by the anomaly forcing dataset.
Copy link
Collaborator

Choose a reason for hiding this comment

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

These documentation changes all look good to me, and I'm glad you went ahead and handled it.

@ekluzek
Copy link
Collaborator

ekluzek commented Nov 5, 2024

I'm just reviewing this, so I took my name off the assignee for it.

@ekluzek ekluzek removed their assignment Nov 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked: dependency Wait to work on this until dependency is resolved bug something is working incorrectly enhancement new capability or improved behavior of existing capability external issue needs to be addressed elsewhere (submodule); issue here for the sake of project tracking usability Improve or clarify user-facing options
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

SSP cases get rcp45 anomalies
2 participants