Skip to content

Conversation

dlebauer
Copy link
Member

@dlebauer dlebauer commented Sep 9, 2025

This was not intuitive and was incorrectly documented

  • normally expect allocation is a fraction of NPP,
  • and exudation was never subtracted from GPP
  • but root exudate is calculated as f(GPP) but subtracted from root biomass, which is an NPP fed pool. (so in the end, it is effectively subtracted from NPP)

also,

  • fix broken comment in N fert section
  • fix list formatting in events section

@dlebauer dlebauer requested a review from Alomir September 9, 2025 23:06
| | 68 | fineRootExudation | fraction of GPP exuded to the soil[^exudates] | fraction | Pulsing parameters |
| 68 | | coarseRootExudation | fraction of GPP exuded to the soil[^exudates] | fraction | Pulsing parameters |

[^exudates]: Fine and coarse root exudation are calculated as a fraction of GPP, but the exudates are subtracted from the fine and coarse root pools, respectively. <!--Note that previous versions incorrectly defined fine root exudates as a fraction of NPP-->
Copy link
Collaborator

Choose a reason for hiding this comment

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

The exudates factor in to the microbe model as well - do we want to note anything about that here?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think this part of the documentation (what is documented, notes on how it is calculated) applies equally to both.
I was just adding this note because the implementation was not intuitive.

I'm not sure what to add here, and I don't want to spend too much time documenting the microbe model until someone starts using it.

- amount is listed as cm/d, but as events are specified per-day, this is treated as `cm` of water added on that day
- For method=soil, this amount of water is added directly to the `soilWater` state variable
- amount is listed as cm/d, as events are specified per-day, this is treated as `cm` of water added on that day even though it is added at a specific time step.
- For method=soil, this amount of water is added directly to the `soilWater` state variable.
Copy link
Collaborator

@Alomir Alomir Sep 10, 2025

Choose a reason for hiding this comment

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

This was correct - but now:

  • moisture is added to fluxes.eventSoilWater, which is eventually added to soil moisture
  • evaporation fraction is added to fluxes.eventEvap (still uses immedEvapFrac for calculating), which is added to the evapotranspiration tracker, reported in sipnet.out

Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

and feel free to edit directly!

Comment on lines +522 to 524
- amount is listed as cm/d, as events are specified per-day, this is treated as `cm` of water added on that day even though it is added at a specific time step.
- For method=soil, this amount of water is added directly to the `soilWater` state variable.
- For method=canopy, a fraction of the irrigation water (determined by input param `immedEvapFrac`) is added to the flux state variable `immedEvap`, with the remainder going to `soilWater`.
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
- amount is listed as cm/d, as events are specified per-day, this is treated as `cm` of water added on that day even though it is added at a specific time step.
- For method=soil, this amount of water is added directly to the `soilWater` state variable.
- For method=canopy, a fraction of the irrigation water (determined by input param `immedEvapFrac`) is added to the flux state variable `immedEvap`, with the remainder going to `soilWater`.
- The amount of irrigation is in units of cm per day, because events are specified per-day, but the entire irrigation is added in a single time step.
- For `method=soil`, this amount of water is added directly to the soil water pool.
- For `method=canopy`, a fraction of the irrigation flux is immediately evaporated (determined by input param `immedEvapFrac`, simulating canopy interception). This is added to the evaporation flux, and the remainder is added to the soil water pool.

I removed the object names to convey the meaning without having to discuss the specific implementation. If anything, that would be better handled as inline comments or developer docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants