-
Notifications
You must be signed in to change notification settings - Fork 105
Additional changes to streamline the phenology code (not bit-for-bit) #1396
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
Open
mpaiao
wants to merge
30
commits into
NGEET:main
Choose a base branch
from
mpaiao:mpaiao-pr-decid-streamline
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…values used by phenology from phenology. This will help to modularise the code, and allow other parts of the code to use these averages.
…ne with more recent versions of FATES.
…to the existing module.
…ogy to become PFT-specific. In the next commit, several cold-deciduous parameters will become PFT- specific parameters too.
…asonal (cold) deciduous into PFT-specific. This allows different cold-deciduous PFTs to have different thresholds.
…om EDParamsMod.F90
…y both cold deciduous and drought deciduous.
…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.
…le phenology parameter.
…at making the code a bit simpler. This is not intended to be bit-for-bit, because some of the changes impact the logic. However, the results shouldn't be dramatically different. 1. Moved the updates for days since last flushing and abscission events to the cumulative time subroutine. 2. Changed the initialisation of the dates of the last flushing/abscission deciduous events, so they can start at negative values. This change should eliminate the need for a few "if" statements in the main phenology subroutine. 3. Added a fourth case for cold deciduous phenology, which forces leaf flushing if plants remain dormant due to cold for a very long time. This should cause these plants to be vulnerable to frost in climates that are too cold for them to survive. 4. Saved some phenology transition tests to logical variables to make the code a bit more readable. 5. Restructured the cold-deciduous phenology code so the different checks are inside an if/elseif/else block (so only one change can happen at any time). 6. Replaced some additional checks for growing degree days that should be taken care by change 2 plus the definition of a growing season
ba52a24 to
f96f2ff
Compare
…hat happened, but maybe this was a rebase issue.
5 tasks
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
This pull request is part of the #1385 task, and it introduces multiple changes in the phenology code aiming at making the logic and the code itself a bit simpler. Because there were (mostly minor) changes in the logic, this is not expected to be bit-for-bit, though these are not expected to cause major changes in results.
In short, these are the changes implemented:
ifstatements in the main phenology subroutine.if/elseif/else block(so only one change can happen at any time).In addition, the phenology status constants (stored in
currentSite%phen_status(ipft)) were updated, and cold-deciduous state names were renamed similarly to the drought deciduous so the code is more easily interpretable (I personally found the original naming a bit confusing). The table below includes all the statuses, original names (except for new statuses) and new names, along with the description.phen_estat_evergreenphen_cstat_timeoffphen_cstat_nevercoldphen_cstat_tempoffphen_cstat_iscoldphen_cstat_temponphen_cstat_notcoldphen_cstat_timeonphen_dstat_timeoffphen_dstat_timeoffphen_dstat_moistoffphen_dstat_moistoffphen_dstat_moistonphen_dstat_moistonphen_dstat_timeonphen_dstat_timeonphen_dstat_pshedphen_dstat_pshedThis pull request should be integrated only after #1355 #1389 and #1392 are integrated.
Collaborators:
@glemieux @rgknox @rosiealice @XiulinGao @lmkueppers @ckoven
Expectation of Answer Changes:
There are some minor changes in logic, so this is unlikely to be bit-for-bit.
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
Integrator
If satellite phenology regressions are not b4b, please hold merge and notify the FATES development team.
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: