CTSM
CTSM copied to clipboard
[WIP] Base GDD20 on per-gridcell windows, not per-hemisphere
Work in progress! Do not review!
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 second step toward adding that ability. I'm breaking this work up into separate PRs to keep them manageable:
- (#2560) Define "recent climate" based on the same "warm period" currently used by default CLM.
- (This PR) Define "recent climate" based on the GGCMI growing seasons.
- Restrict adapted
gddmaturityvalues to a realistic range.
Specific notes
Contributors other than yourself, if any: None
CTSM Issues Fixed (include github issue #):
- Contributes to #1928
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 namelist logical
stream_gdd20_seasons(default false). Enabling this automatically sets the relevant input files (see below) to the half-degree GGCMI growing seasons. - Adds input files
stream_fldFileName_gdd20_season_startand_end(default'', unlessstream_gdd20_seasonsis true). Providing either file butstream_gdd20_seasons = .true.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:
- In progress