Skip to content

fungal wood respiration - #1543

Open
rgknox wants to merge 3 commits into
NGEET:mainfrom
rgknox:fungal-wood-respiration
Open

fungal wood respiration#1543
rgknox wants to merge 3 commits into
NGEET:mainfrom
rgknox:fungal-wood-respiration

Conversation

@rgknox

@rgknox rgknox commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Description:

This set of changes introduces a new heterotrophic respiration loss applied to coarse woody debris. This loss pathway is designed to mimic fungal wood decomposition, prior to entering the decomposition cascades in the host model. This is applied to the fragmented loss fluxes. A portion of the fragmented carbon loss from wood is sent to the hosts for further decomposition, and a portion is lost to the atmosphere now as this fungal respiration term.

This change was motivate through discussions and brainstorming by the NGEET nutrient: including Anthony Walker, Charlie Koven, Xiaojuan Yang, Matthew Craig, Daniela Yaffar, Mingjie Shi, myself and others.

New FATES parameter: fates_cwd_hrfrag_frac

This sets the fraction of carbon that is lost to fragmentation that ends up as fungal respiration flux. Note that the higher the value of this term, the lower the C/N and C/P ratio (i.e. higher nutrient concentration) of the fragmentation flux into the host.

Control of total fragmentation rate remains unchanged, and is still based on a maximum rate set by the parameters: fates_frag_maxdecomp

This parameter is most useful in nutrient limited simulations. Moreover, we have found that this parameter is important to keeping C/N ratios of the total litter pool at lower and reasonable levels.

Collaborators:

Conceptual design:
@walkeranthonyp, @ckoven, Xiaojuan Yang, @rgknox

Expectation of Answer Changes:

These changes should not impact C-only runs, aside from specific output variables related to litter composition. C-only dynamics should not be affected by this change.

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
  • FATES-CLM6 Code Freeze: satellite phenology regression tests are b4b

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:

@ckoven

ckoven commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

This looks awesome @rgknox, thanks! Everything here looks great to me. The only comment I have is that we should probably pass this information on the fungal respiration flux through a bc_out field to the host model, so that it can be added into the HR, NEE, and NBP history variables as well. Not sure if that should come with this PR or a separate one though.

@rgknox rgknox added parameters: new Pertaining to adding new parameters to the parameter file testing: pure B4B No differences in any tests software: not API changing Does not require a change to the HLM API labels Jul 27, 2026
@rgknox
rgknox requested a review from walkeranthonyp August 3, 2026 18:27

@walkeranthonyp walkeranthonyp left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This looks great Ryan, thanks for working on this! Overall the PR looks good to me.

Only real comment is that it looks to me like you're applying the HR rate to the CWD pool rather than the fragmentation flux. Nothing wrong with that in itself but I understood from the PR text that you were applying the HR rate to the fragmentation flux.

Maybe I missed something and the rate is a applied to the fragmentatino flux. Bu in either case, I think this is an interesting point of discussion as each option (pool or flux application of HR rate) would have different impacts on model behaviour. Applied to the pool, HR will directly affect the C:N/P ratio of the pool and then the flux will be the C:N/P ratio of the pool. Applied to the flux, the C:N/P ratio of the pool will simply be a function of input amount and ratios, and the flux C:N/P ratio will be fung_hetresp_baserate * C:N/P.

Applied to the pool, the behaviour will be quite dynamic and C:N/P ratios of the flux will be more time-dependent and a result of the quantity of CWD litter inputs relative to the size of the pool and state of decomposition. Applied to the flux, the C:N/P of the flux will be more consistent through time and a function of the relative C:N/P ratios of the CWD inputs.

Application to the pool may be more defensible if we assume the CWD is homogeneously colonised by fungi (which is probably a stretch). If we are going this route, a hr rate of 0.5 might be a bit high.

Agree with @ckoven 's comment that we prob need to pass this HR flux over to the host model in order to enable accurate carbon accounting in the host.

Also, could make the new parameter a vector ncwd long to allow future users to play with that.

Comment thread biogeochem/EDPhysiologyMod.F90 Outdated
litt%ag_cwd_frag(c) = litt%ag_cwd(c) * SF_val_max_decomp(c) * &
years_per_day * fragmentation_scaler(soil_layer_index)

litt%ag_cwd_funghr(c) = litt%ag_cwd(c) * fung_hetresp_baserate * years_per_day

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This looks as if fungal HR is applied to the CWD pool rather than the CWD fragmentation flux. Discussed more in overall comments.

Comment thread biogeochem/EDPhysiologyMod.F90 Outdated
litt%bg_cwd_frag(c,ilyr) = litt%bg_cwd(c,ilyr) * SF_val_max_decomp(c) * &
years_per_day * fragmentation_scaler(ilyr)

litt%bg_cwd_funghr(c,ilyr) = litt%bg_cwd(c,ilyr) * fung_hetresp_baserate * years_per_day

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same here

},
"fates_funghr_frac": {
"dtype": "float",
"long_name": "fraction of cwd losses due to fungal respiratoin and not fragmentation",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Minor spelling mistake in respiration

"dtype": "float",
"long_name": "fraction of cwd losses due to fungal respiratoin and not fragmentation",
"units": "-",
"data": [0.5]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Could make this ncwd long to allow the option to vary this by CWD pool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parameters: new Pertaining to adding new parameters to the parameter file software: not API changing Does not require a change to the HLM API testing: pure B4B No differences in any tests

Projects

Status: Finding Reviewers

Development

Successfully merging this pull request may close these issues.

3 participants