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

Enable leaf phenology when running Static Stand Structure (ST3) Mode #1129

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

mpaiao
Copy link
Contributor

@mpaiao mpaiao commented Dec 8, 2023

Description:

Leaf phenology was by default disabled when running ST3 mode, which limits its application in deciduous-dominated area (e.g., when assessing fluxes given a stand). This pull request partially addresses this.

  1. To avoid errors due to carbon checks, the code simply imposes retranslation factors = 1 to all tissues and elements, and thus sending all mass to storage. This also ensures all elements are available for regrowth with minimal edits to the code.
  2. Limitations: this solution does not address the seasonal cycle of heterotrophic respiration, as the litter layer does not change in response to tissue abscission. That said, this is not making the seasonality representation worse, as the litter pools were already aseasonal in ST3.

Collaborators:

@ckoven @rgknox @rosiealice

Expectation of Answer Changes:

Results should change when running FATES in ST3 mode.

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:

1. Very simplistic approach, in which we impose retranslocation factor for all elements
   to be 1. This ensures carbon is available for regrowth and the carbon budget is
   closed.
2. This is not an ideal solution because leaf abscission would increase litter stocks
   and consequently modulate the seasonal cycle of heterotrophic respiration. That said,
   this is not necessarily worse than assuming leaf biomass is aseasonal in deciduous-
   dominated ecosystems, and that litter stocks would need to change based on
   environmentally driven seasonality of heterotrophic respiration.
@rgknox
Copy link
Contributor

rgknox commented Jan 15, 2024

I think its fair to ignore heterotrophic seasonality, and litter fluxes. They were not there before, so we are not losing process functionality, only gaining processes functionality.

@@ -2508,7 +2508,7 @@ subroutine update_history_dyn(this,nc,nsites,sites,bc_in)
hio_lai_si => this%hvars(ih_lai_si)%r81d )

! If we don't have dynamics turned on, we just abort these diagnostics
if (hlm_use_ed_st3.eq.itrue) return
Copy link
Contributor

@rgknox rgknox Jan 15, 2024

Choose a reason for hiding this comment

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

I'm working on breaking up the history calls (in another PR) so that we are not processing variables that are not desired or active. My take, is that by removing this line, the user can now view phenologically relevant output?

Copy link
Contributor Author

@mpaiao mpaiao Jan 15, 2024

Choose a reason for hiding this comment

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

To be honest, I had removed this because I wanted to see the computed forest structure properties in the output, and forgot to uncomment it back for the PR. But you are right, this return may disable variables that are now going to change due to phenology. Perhaps we could move the phenology-related variables before the if and keep the others after the if?

Copy link
Contributor

@rgknox rgknox Jan 15, 2024

Choose a reason for hiding this comment

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

my intention in the PR that cleans up history was to enable diagnostics that show forest structure and states, and to turn off flux variables (with st3 AND Sat Phen). So, if you don't have a strong preference for this PR, lets just keep the return in there to make testing more straight forward?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I can uncomment it.

Maybe a topic for the other PR, but wouldn't you want to output flux variables (and LAI) when using ST3 and SP modes, and turn off the other forest structure and states (as they wouldn't vary in these modes)?

Copy link
Contributor

@rgknox rgknox left a comment

Choose a reason for hiding this comment

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

I think these changes all look good, no comments. Only recommendation is that we update any documentation to explain that phenology is allowed with ST3 now, and the simiplifications associated with it.

Copy link
Contributor

@ckoven ckoven left a comment

Choose a reason for hiding this comment

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

This looks great to me, thanks @mpaiao for finding such a clean solution to this!

@glemieux
Copy link
Contributor

glemieux commented Jan 22, 2024

Regression testing is queued on cheyenne.

@glemieux
Copy link
Contributor

Regression testing is showing that the ST3 mode does not pass exact restart currently. Looking into this. All other expected tests are B4B.

@glemieux glemieux added the stuck Pull request is currently waiting on resolution of an issue that came up during review or testing label Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stuck Pull request is currently waiting on resolution of an issue that came up during review or testing
Projects
Development

Successfully merging this pull request may close these issues.

4 participants