Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
496ee06
Add MAX_TLAI_PERHARV history output.
samsrabin Nov 25, 2025
7f9ef13
PlantCrop: Add namelist option to suppress low gddmaturity warning.
samsrabin Nov 2, 2025
e9219a2
Fix a comment
samsrabin Nov 25, 2025
4ee9e6e
Add crop phase transition biomass outputs.
samsrabin Nov 25, 2025
291a158
Rename GRAINC_AT hist vars to HARVORGANC_AT to fix LREPRSTRUCT tests.
samsrabin Nov 26, 2025
7c89b24
Rename HARVORGANC_AT history vars to REPRC_AT.
samsrabin Dec 1, 2025
a263a92
Rename grainc_at vars to reprc_at.
samsrabin Dec 1, 2025
319be76
CropPhaseTransitionBiomass() bugfix for reproductive C.
samsrabin Dec 1, 2025
a7e66aa
PlantCrop: Fix setting max_tlai_patch.
samsrabin Jan 8, 2026
eb3237a
CropPhenology(): New variable is_mature.
samsrabin Jan 9, 2026
533383f
Only save crop maturity biomass if mature. Always save new harvest bi…
samsrabin Jan 9, 2026
7e480b9
CropPhenology(): Add a comment.
samsrabin Jan 12, 2026
71bc137
Fix restart of _harvest_ biomass variables.
samsrabin Jan 12, 2026
af1ed71
CropPhaseTransitionBiomass(): Delete an unused 'use'.
samsrabin Jan 12, 2026
365fda3
CropPhaseTransitionBiomass(): Require is_mature arg if cphase is harv…
samsrabin Jan 12, 2026
df3c1cd
Move some var inits from PlantCrop() to new CropType%InitPlantCrop().
samsrabin Jan 12, 2026
cf7d3fe
Add tests for CropType%CropPhaseTransitionBiomass(). 2 fail.
samsrabin Jan 12, 2026
f26b8e2
CropPhaseTransitionBiomass: Fix behavior if skipping phases.
samsrabin Jan 12, 2026
08b93e7
CropPhaseTransitionBiomass(): Assert cphase in expected range.
samsrabin Jan 12, 2026
3c7eac6
Merge branch 'b4b-dev' into crop-harvest-biomass-history
samsrabin Jan 13, 2026
db86d05
Merge branch 'b4b-dev' into crop-harvest-biomass-history
samsrabin Jan 17, 2026
56e29f7
Factor new subroutine EnergyBalanceCheck out of BalanceCheck.
samsrabin Jan 22, 2026
822f1b9
BalanceCheckMod: error_thresh is now a module-level param.
samsrabin Jan 22, 2026
538f117
Call EnergyBalanceCheck at end of SurfaceRadiation.
samsrabin Jan 22, 2026
43a7a1a
Move new EnergyBalanceCheck() call to after UrbanRadiation.
samsrabin Jan 22, 2026
042097b
Move new EnergyBalanceCheck call to right before albedo calculations.
samsrabin Jan 22, 2026
4478595
Restore dtime assignment to BalanceCheck.
samsrabin Jan 22, 2026
16b0801
CropPhase: Factor out new subroutine CropPhase_OnePatch.
samsrabin Jan 22, 2026
b870b8b
CropPhase(): Remove associate().
samsrabin Jan 22, 2026
242b06d
Merge tag 'ctsm5.4.011' into merge-master-20260123
slevis-lmwg Jan 23, 2026
fdbd94a
Merge pull request #3715 from slevis-lmwg/merge-master-20260123
slevis-lmwg Jan 23, 2026
023631e
Fix pre-existing typo.
samsrabin Jan 23, 2026
c9c9756
Merge branch 'b4b-dev' into refactor-cropphase
samsrabin Jan 23, 2026
f90f9f1
Merge pull request #3713 from samsrabin/refactor-cropphase
samsrabin Jan 27, 2026
c087862
Merge branch 'b4b-dev' into crop-harvest-biomass-history
samsrabin Jan 28, 2026
71123fa
Move CropPhaseTransitionBiomass from CropType to CNPhenology.
samsrabin Jan 28, 2026
9af60cb
test_CropPhaseTransitionBiomass: Add two failing tests.
samsrabin Jan 28, 2026
d792a2f
CropPhaseTransitionBiomass(): Consider whether crop actually reached …
samsrabin Jan 29, 2026
e8c5710
Delete an extraneous space.
samsrabin Jan 29, 2026
29bfcf2
Rename leafout to gddtsoi.
samsrabin Jan 29, 2026
da4797c
Where specifying format for xarray to_netcdf, use NETCDF4_CLASSIC.
samsrabin Nov 1, 2025
21cad52
generate_gdd20_baseline: Make output dir if doesn't exist.
samsrabin Oct 30, 2025
485e85e
Docs: Update history_fields_nofates.rst.
samsrabin Jan 30, 2026
43f12fd
Merge pull request #3633 from samsrabin/crop-harvest-biomass-history
samsrabin Jan 30, 2026
5d7e398
Merge branch 'b4b-dev' into minor-gengdd20bl-improvements
samsrabin Jan 30, 2026
eda9bfb
Merge pull request #3727 from samsrabin/minor-gengdd20bl-improvements
samsrabin Jan 30, 2026
5127756
Add testing of generate_gdds.py args.
samsrabin Oct 29, 2025
b714091
generate_gdds: Rename --unlimited-season-length to --max-season-lengt…
samsrabin Oct 29, 2025
3c2a8e4
import_max_gs_length(): Just take paramfile as arg directly.
samsrabin Oct 29, 2025
87e7a69
generate_gdds: New --paramfile argument required unless user gives --…
samsrabin Oct 29, 2025
c3052bf
generate_gdds: Extract and test _get_max_growing_season_lengths().
samsrabin Oct 30, 2025
b644a08
generate_gdds: Add --max-season-length-cushion arg.
samsrabin Oct 29, 2025
7bc30dd
generate_gdds: Fail if rx s/hdates don't match CLM grid.
samsrabin Oct 30, 2025
03471cf
Merge branch 'b4b-dev' into move-rad-balance-check
samsrabin Jan 30, 2026
d51711e
BalanceCheck() bug fix: vars were unset.
samsrabin Jan 31, 2026
b5abcce
Merge pull request #3710 from samsrabin/move-rad-balance-check
samsrabin Feb 1, 2026
420d245
Merge branch 'b4b-dev' into generate_gdds-args-work
samsrabin Feb 4, 2026
fa82a4b
RXCROPMATURITY test: Add reqd argument.
samsrabin Feb 4, 2026
094f607
generate_gdds: Coerce lat/lon matches if needed.
samsrabin Feb 4, 2026
56bfaff
Merge pull request #3729 from samsrabin/generate_gdds-args-work
samsrabin Feb 4, 2026
295da0d
generate_gdds: Add _get_time_slice_list(); unused.
samsrabin Nov 14, 2025
14c223c
import_ds: Factor out new get_files_in_time_slice().
samsrabin Nov 14, 2025
2822322
generate_gdds_functions: Factor out new find_inst_hist_files().
samsrabin Nov 14, 2025
ed25bec
generate_gdds: Get file lists before entering import_and_process_1yr().
samsrabin Nov 14, 2025
598de2f
generate_gdds: Reformat with black.
samsrabin Feb 4, 2026
879400c
Add previous commit to .git-blame-ignore-revs.
samsrabin Feb 4, 2026
2f429cd
test_unit_generate_gdds: Fix test_find_inst_hist_files_prefer_nc_over…
samsrabin Feb 4, 2026
16d1182
test_unit_generate_gdds: Check more error messages.
samsrabin Feb 4, 2026
fbf09a0
generate_gdds: Explain pickle resume.
samsrabin Feb 5, 2026
90c4d0e
Add RXCROPMATURITY tests to expected fails.
samsrabin Feb 5, 2026
5bd712f
Merge pull request #3738 from samsrabin/generate_gdds-get-file-lists-…
samsrabin Feb 5, 2026
e725448
Merge tag 'ctsm5.4.015' into b4b-dev-merge-20260205
samsrabin Feb 5, 2026
7d486e5
Update ChangeLog and ChangeSum.
samsrabin Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,4 @@ cdf40d265cc82775607a1bf25f5f527bacc97405
ac03492012837799b7111607188acff9f739044a
d858665d799690d73b56bcb961684382551193f4
c0c6da391ee359f2765439426f3a2a4593a95343
598de2f05638286b3d99ac0ed120977cbc554c3d
1 change: 1 addition & 0 deletions bld/namelist_files/namelist_defaults_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,7 @@ attributes from the config_cache.xml file (with keys converted to upper-case).

<generate_crop_gdds >.false.</generate_crop_gdds>
<use_mxmat >.true.</use_mxmat>
<suppress_gddmaturity_warning >.false.</suppress_gddmaturity_warning>

<!-- use additional stress deciduous onset trigger -->
<constrain_stress_deciduous_onset >.true.</constrain_stress_deciduous_onset>
Expand Down
5 changes: 5 additions & 0 deletions bld/namelist_files/namelist_definition_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1484,6 +1484,11 @@ Set to .true. in order to override crop harvesting logic and to instead harvest
Set to .false. in order to ignore crop PFT parameter for maximum growing season length (mxmat). Must be set to .false. when generate_crop_gdds is .true.
</entry>

<entry id="suppress_gddmaturity_warning" type="logical" category="physics"
group="cnphenology" valid_values="" value=".false.">
If set to .true., suppress the warning message when a prescribed cultivar GDD requirement is below the minimum allowed value and is replaced with min_gddmaturity. Useful when using prescribed crop calendars with intentionally low GDD requirements.
</entry>

<entry id="min_critical_dayl_method" type="char*25" category="physics"
group="cnphenology" valid_values="Constant,DependsOnLat,DependsOnVeg,DependsOnLatAndVeg">
Method for determining what the minimum critical day length for seasonal decidious leaf offset depends on
Expand Down
1 change: 1 addition & 0 deletions cime_config/SystemTests/rxcropmaturity.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,7 @@ def _run_generate_gdds(self, case_gddgen):
f"--hdates-file {hdates_file}",
f"--output-dir generate_gdds_out",
f"--skip-crops miscanthus,irrigated_miscanthus,switchgrass,irrigated_switchgrass",
"--max-season-length-from-hdates-file",
]
)
stu.run_python_script(
Expand Down
21 changes: 21 additions & 0 deletions cime_config/testdefs/ExpectedTestFails.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,27 @@
</phase>
</test>

<test name="RXCROPMATURITY_Lm61.f10_f10_mg37.IHistClm60BgcCrop.derecho_intel.clm-cropMonthOutput">
<phase name="RUN">
<status>FAIL</status>
<issue>#3740</issue>
</phase>
</test>

<test name="RXCROPMATURITY_Lm61.f09_t232.IHistClm60BgcCrop.derecho_intel.clm-cropMonthOutput">
<phase name="RUN">
<status>FAIL</status>
<issue>#3740</issue>
</phase>
</test>

<test name="RXCROPMATURITY_Lm61.f09_g17.IHistClm60BgcCrop.derecho_intel.clm-cropMonthOutput">
<phase name="RUN">
<status>FAIL</status>
<issue>#3740</issue>
</phase>
</test>

<test name="SMS_Ld5.f09_g17.IHistClm50Sp.derecho_intel.clm-nofire">
<phase name="SHAREDLIB_BUILD">
<status>FAIL</status>
Expand Down
7 changes: 6 additions & 1 deletion cime_config/testdefs/testmods_dirs/clm/crop/user_nl_clm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@ hist_fincl2 += 'DYN_COL_SOIL_ADJUSTMENTS_C'
! Note that, under normal circumstances, these should only be saved annually.
! That's needed for the mxsowings and mxharvests axes to make sense.
! However, for testing purposes, it makes sense to save more frequently.
hist_fincl3 = 'SDATES', 'SDATES_PERHARV', 'SYEARS_PERHARV', 'HDATES', 'GRAINC_TO_FOOD_PERHARV', 'GRAINC_TO_FOOD_ANN', 'GRAINN_TO_FOOD_PERHARV', 'GRAINN_TO_FOOD_ANN', 'GRAINC_TO_SEED_PERHARV', 'GRAINC_TO_SEED_ANN', 'GRAINN_TO_SEED_PERHARV', 'GRAINN_TO_SEED_ANN', 'HDATES', 'GDDHARV_PERHARV', 'GDDACCUM_PERHARV', 'HUI_PERHARV', 'SOWING_REASON_PERHARV', 'HARVEST_REASON_PERHARV', 'SWINDOW_STARTS', 'SWINDOW_ENDS', 'GDD20_BASELINE', 'GDD20_SEASON_START', 'GDD20_SEASON_END'
hist_fincl3 = 'SDATES', 'SDATES_PERHARV', 'SYEARS_PERHARV', 'HDATES', 'GRAINC_TO_FOOD_PERHARV', 'GRAINC_TO_FOOD_ANN', 'GRAINN_TO_FOOD_PERHARV', 'GRAINN_TO_FOOD_ANN', 'GRAINC_TO_SEED_PERHARV', 'GRAINC_TO_SEED_ANN', 'GRAINN_TO_SEED_PERHARV', 'GRAINN_TO_SEED_ANN', 'HDATES', 'GDDHARV_PERHARV', 'GDDACCUM_PERHARV', 'HUI_PERHARV', 'SOWING_REASON_PERHARV', 'HARVEST_REASON_PERHARV', 'SWINDOW_STARTS', 'SWINDOW_ENDS', 'GDD20_BASELINE', 'GDD20_SEASON_START', 'GDD20_SEASON_END', 'MAX_TLAI_PERHARV'
hist_fincl3 += 'FROOTC_AT_EMERGENCE_PERHARV', 'FROOTC_AT_ANTHESIS_PERHARV', 'FROOTC_AT_MATURITY_PERHARV', 'FROOTC_AT_HARVEST_PERHARV'
hist_fincl3 += 'LIVECROOTC_AT_EMERGENCE_PERHARV', 'LIVECROOTC_AT_ANTHESIS_PERHARV', 'LIVECROOTC_AT_MATURITY_PERHARV', 'LIVECROOTC_AT_HARVEST_PERHARV'
hist_fincl3 += 'LIVESTEMC_AT_EMERGENCE_PERHARV', 'LIVESTEMC_AT_ANTHESIS_PERHARV', 'LIVESTEMC_AT_MATURITY_PERHARV', 'LIVESTEMC_AT_HARVEST_PERHARV'
hist_fincl3 += 'LEAFC_AT_EMERGENCE_PERHARV', 'LEAFC_AT_ANTHESIS_PERHARV', 'LEAFC_AT_MATURITY_PERHARV', 'LEAFC_AT_HARVEST_PERHARV'
hist_fincl3 += 'REPRC_AT_EMERGENCE_PERHARV', 'REPRC_AT_ANTHESIS_PERHARV', 'REPRC_AT_MATURITY_PERHARV', 'REPRC_AT_HARVEST_PERHARV'
hist_nhtfrq = -24,-8,-24
hist_mfilt = 1,1,1
hist_type1d_pertape(3) = 'PFTS'
Expand Down
76 changes: 76 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,80 @@
===============================================================
Tag name: ctsm5.4.016
Originator(s): samrabin (Sam Rabin, UCAR/TSS)
Date: Fri Feb 6 09:09:56 MST 2026
One-line Summary: Merge b4b-dev to master

Purpose and description of changes
----------------------------------

Merge b4b-dev to master

Significant changes to scientifically-supported configurations
--------------------------------------------------------------

Does this tag change answers significantly for any of the following physics configurations?
(Details of any changes will be given in the "Answer changes" section below.)

[ ] clm6_0

[ ] clm5_0

[ ] ctsm5_0-nwp

[ ] clm4_5


Bugs fixed
----------

List of CTSM issues fixed (include CTSM Issue # and description):
- [ESCOMP/CTSM Issue #3696: CropPhenology: Rename leafout to gddtsoi](https://github.com/ESCOMP/CTSM/issues/3696)
- [ESCOMP/CTSM Issue #3057: error in errsol computation in BalanceCheckMod reports the wrong albedo values](https://github.com/ESCOMP/CTSM/issues/3057)


Notes of particular relevance for users
---------------------------------------

Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables):
- New `suppress_gddmaturity_warning` namelist flag, default false.


Notes of particular relevance for developers:
---------------------------------------------

Changes to tests or testing:
- New Python unit and system tests.
- New Fortran unit tests.
- RXCROPMATURITY_ tests added to expected failure list. Will be resolved soon.


Testing summary:
----------------

python testing (if python code has changed; see instructions in python/README.md; document testing done):

derecho - OK

regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing):

derecho ----- OK
izumi ------- OK


Other details
-------------

Pull Requests that document the changes (include PR ids):
- [ESCOMP/CTSM Pull Request #3713: Factor out new subroutine CropPhase_OnePatch](https://github.com/ESCOMP/CTSM/pull/3713)
- [ESCOMP/CTSM Pull Request #3633: Add history outputs: Crop biomass and LAI per harvest](https://github.com/ESCOMP/CTSM/pull/3633)
- [ESCOMP/CTSM Pull Request #3727: Minor improvements to generate_gdd20_baseline.py](https://github.com/ESCOMP/CTSM/pull/3727)
- [ESCOMP/CTSM Pull Request #3710: Improve radiation balance check](https://github.com/ESCOMP/CTSM/pull/3710)
- [ESCOMP/CTSM Pull Request #3729: generate_gdds: Work on arguments](https://github.com/ESCOMP/CTSM/pull/3729)
- [ESCOMP/CTSM Pull Request #3738: generate_gdds: Get file lists earlier](https://github.com/ESCOMP/CTSM/pull/3738)
- [ESCOMP/CTSM Pull Request #3741: ctsm5.4.016: b4b-dev merge 2026-02-05](https://github.com/ESCOMP/CTSM/pull/3741)

===============================================================
===============================================================
Tag name: ctsm5.4.015
Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326)
Date: Tue Feb 3 12:29:48 AM MST 2026
Expand Down
1 change: 1 addition & 0 deletions doc/ChangeSum
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Tag Who Date Summary
============================================================================================================================
ctsm5.4.016 samrabin 02/06/2026 Merge b4b-dev to master
ctsm5.4.015 erik 02/03/2026 Update CISM to latest version with answer changes
ctsm5.4.014 mvdebols 01/29/2026 Fix for xm2 and revise logic for excess ice melt
ctsm5.4.013 erik 01/28/2026 Patch the Greenland snow hole with initial conditions for ne30 and tweak the C14 isotope latitudes
Expand Down
Loading
Loading