Skip to content

Simplification of leaf phenology parameters#1355

Merged
glemieux merged 9 commits intoNGEET:mainfrom
mpaiao:mpaiao-pr-phen-flags
May 20, 2025
Merged

Simplification of leaf phenology parameters#1355
glemieux merged 9 commits intoNGEET:mainfrom
mpaiao:mpaiao-pr-phen-flags

Conversation

@mpaiao
Copy link
Contributor

@mpaiao mpaiao commented Mar 10, 2025

Description:

The goal of this pull request is to simplify how we define leaf phenological habit for PFTs. We currently need to define three parameters (fates_phen_evergreen, fates_phen_season_decid, fates_phen_stress_decid), which must be mutually exclusive (i.e., only one of them can be non-zero for any PFT). This pull request replaces these parameters with a single one (fates_phen_leaf_habit) which allows selecting which phenological habit to use:

  1. Evergreen
  2. Obligate season (cold) deciduous
  3. Obligate stress (drought) deciduous
  4. Stress (drought) semi-deciduous

This change will simplify creating new phenological habits in the future, as everything would be still handled by one parameter. It also avoids early crashes at the beginning of the model run, because this approach ensures the different habits are mutually exclusive.

Collaborators:

Expectation of Answer Changes:

These changes are intended to be bit-for-bit, the only change is in how we store information regarding leaf phenology.

Checklist

If this is your first time contributing, please read the CONTRIBUTING document.

All checklist items must be checked to enable merging this pull request:

Contributor

  • The in-code documentation has been updated with descriptive comments
  • The documentation has been assessed to determine if updates are necessary

Integrator

  • FATES PASS/FAIL regression tests were run
  • Evaluation of test results for answer changes was performed and results provided

Documentation

Test Results:

CTSM (or) E3SM (specify which) test hash-tag:

CTSM (or) E3SM (specify which) baseline hash-tag:

FATES baseline hash-tag:

Test Output:

mpaiao added 5 commits March 10, 2025 09:07
…ngle, multi-option

flag. This change simplifies the PFT set up and by default resolves possible incorrect
settings of 3 mutually exclusive flags. Some of the associated code was also updated from
if statements to select case, to ensure that options do not overlap.
@glemieux glemieux added inputs: parameter file Pertaining to changes to the FATES parameter file science: phenology type: refactor Restructures code without changing functionality parameters: new Pertaining to adding new parameters to the parameter file labels Mar 13, 2025
@glemieux glemieux moved this from Todo to Under Review in FATES Pull Request Planning and Status Mar 17, 2025
Copy link
Contributor

@glemieux glemieux left a comment

Choose a reason for hiding this comment

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

Really nice work here. I made one comment suggesting a minor update to align with a code pattern update you made in one file, but it's not high priority.

! but if the plant is seasonally (cold) deciduous, and the site status is flagged
! as "cold", then set the cohort's status to leaves_off, and remember the leaf biomass
if ((prt_params%season_decid(ft) == itrue) .and. &
if ((prt_params%phen_leaf_habit(ft) == ihard_season_decid) .and. &
Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like we could move this into the select case statement down on line 2571 correct? This would mirror the work you made earlier in this file.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the suggestion! I moved this part to the select case block below.

@github-project-automation github-project-automation bot moved this from Under Review to Final Testing in FATES Pull Request Planning and Status Mar 24, 2025
two-stream sun-shade fraction update

This simplifies the leaf sunlit fraction calculation to assume that it
is comparible to that of other media.
@glemieux
Copy link
Contributor

glemieux commented May 6, 2025

Regression testing underway on derecho.

@glemieux
Copy link
Contributor

glemieux commented May 6, 2025

Regression testing against fates-sci.1.83.0_api.39.0.0-ctsm5.3.041 results in B4B results for all expected tests. There are expected NLCOMP differences due to testing with the customer parameter file specific to this PR and not the HLM default parameter file. There is also a series of SHORT_TERM_ARCHIVER exceptions, but this is a workflow issue and will be fixed with the next b4b-dev ctsm tag.

I've created a temporary baseline for this on derecho: fates-sci.1.83.1_api.39.1.0-ctsm5.3.041-pr1355.

I'd like to integrate this via a super PR that also integrates #1358 and #1359 in coordination with ESCOMP/CTSM#3087, so we're going to hold on integration.

Results: /glade/u/home/glemieux/scratch/ctsm-tests/tests_pr1355-fates

UPDATE: this has been merged into #1406. It will be automatically merged when that #1406 is integrated.

@glemieux glemieux moved this from Final Testing to Hold in FATES Pull Request Planning and Status May 7, 2025
mpaiao added a commit to mpaiao/fates that referenced this pull request May 10, 2025
@glemieux glemieux merged commit 4d2e62c into NGEET:main May 20, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from Hold to Ready to Integrate in FATES Pull Request Planning and Status May 20, 2025
samsrabin added a commit to samsrabin/fates that referenced this pull request Jun 10, 2025
updates to the default parameter file

This update includes a phenology parameter refactor per NGEET#1355, an update
to the default exclusion parameter per NGEET#1358, updates to the logging
parameters to default to clearcut via NGEET#1359, and a minor long name
correction per NGEET#1394.
samsrabin added a commit to samsrabin/fates that referenced this pull request Jun 23, 2025
updates to the default parameter file

This update includes a phenology parameter refactor per NGEET#1355, an update
to the default exclusion parameter per NGEET#1358, updates to the logging
parameters to default to clearcut via NGEET#1359, and a minor long name
correction per NGEET#1394.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inputs: parameter file Pertaining to changes to the FATES parameter file parameters: new Pertaining to adding new parameters to the parameter file science: phenology type: refactor Restructures code without changing functionality

Projects

Development

Successfully merging this pull request may close these issues.

2 participants