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

Allow prescribed gddmaturity to vary based on recent climate (initial work, v2) #2560

Merged
merged 26 commits into from
May 31, 2024

Conversation

samsrabin
Copy link
Collaborator

@samsrabin samsrabin commented May 28, 2024

Description of changes

In the existing code, when using the default CLM crop calendars, gddmaturity (maturity requirement; the number of growing degree-days it takes for a crop to mature and be harvested) can vary within some bounds based on climate over the past 20 years. Specifically, CLM looks at some annual "warm period" which differs between the northern and southern hemispheres. This variation allows "farmers" to adapt the "cultivars" (varieties) they grow based on recent climate.

When prescribing maturity requirement, though—with input file stream_fldFileName_cultivar_gdds—it's currently not allowed to vary over time. Instead, it's locked in to what's provided in the input file: the mean GDD accumulation in the GGCMI growing period over the 1980-2009 growing seasons.

We want this variation to allow "farmers" to adapt the "varieties" they grow based on whether the recent climate has been warmer or cooler than that baseline 1980-2009 period.

This PR represents the first step toward adding that ability. I'm breaking this work up into separate PRs to keep them manageable:

  1. (This PR) Define "recent climate" based on the same "warm period" currently used by default CLM.
    1.1. Add more namelist options and checks.
  2. Define "recent climate" based on the GGCMI growing seasons.
  3. Restrict adapted gddmaturity values to a realistic range.

Specific notes

Contributors other than yourself, if any: None

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)? Not unless enabling this new, experimental feature.

Any User Interface Changes (namelist or namelist defaults changes)?

  • Adds input file stream_fldFileName_gdd20_baseline (default ''). Pointing this at a file automatically enables adaptation of prescribed maturity requirements; there's no separate boolean namelist variable to worry about. Providing this file but not prescribed maturity requirements will cause an error in the build namelist step.

Does this create a need to change or add documentation? Did you do so? Documentation will need to be updated when all the PRs in my plan are merged and this feature is considered ready for use. But at this point, things are preliminary enough that I'd have to rewrite whatever docs I added in this PR. So no: I'm adding no documentation here.

Testing performed, if any:

  • Ensure clm_short passes bit-for-bit
  • Ensure a transient run with stream_fldFileName_gdd20_baseline provided works as we expect (gddmaturity changes over time)
  • Ensure aux_clm passes bit-for-bit

@samsrabin samsrabin added this to the CESM Capability Freeze milestone May 28, 2024
@samsrabin samsrabin self-assigned this May 28, 2024
@ekluzek
Copy link
Collaborator

ekluzek commented May 28, 2024

@samsrabin this PR says that it may be "subject to force pushes". In the branch protection rules there is a button that currently doesn't allow force pushes -- should I switch that to allow them?

@samsrabin
Copy link
Collaborator Author

Oh thanks for that heads up, Erik. Let's see if I end up needing to do any—if not, we won't need to worry about it.

@samsrabin samsrabin changed the title [WIP] Allow prescribed gddmaturity to vary based on recent climate (v2) Allow prescribed gddmaturity to vary based on recent climate (v2) May 28, 2024
@samsrabin samsrabin marked this pull request as ready for review May 28, 2024 21:06
Copy link
Contributor

@slevis-lmwg slevis-lmwg left a comment

Choose a reason for hiding this comment

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

@samsrabin and I looked over this PR.
@samsrabin took notes and will make changes accordingly.
I think my comments were minor enough, plus this PR is getting merged to a branch (not main), so I'm comfortable approving preemptively.

src/biogeochem/CNPhenologyMod.F90 Show resolved Hide resolved
@samsrabin samsrabin merged commit a09d72c into ESCOMP:scale-maturity-reqs May 31, 2024
2 checks passed
@samsrabin samsrabin changed the title Allow prescribed gddmaturity to vary based on recent climate (v2) Allow prescribed gddmaturity to vary based on recent climate (PR 1, v2) Jun 9, 2024
@samsrabin samsrabin changed the title Allow prescribed gddmaturity to vary based on recent climate (PR 1, v2) Allow prescribed gddmaturity to vary based on recent climate (initial work, v2) Jun 9, 2024
@samsrabin samsrabin added enhancement new capability or improved behavior of existing capability science Enhancement to or bug impacting science labels Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bfb bit-for-bit enhancement new capability or improved behavior of existing capability science Enhancement to or bug impacting science
Projects
Development

Successfully merging this pull request may close these issues.

3 participants