At the moment mycorrhizal uptake of nutrients happens with the following process:
- Mycorrhizal fungi predict the maximum amount of nutrients they can provide the plants (based on soil nutrient availability)
- Plants decide how much of this they want to take
- Mycorrhizal fungi provide this amount to the plants
Step 1) happens at the end of one soil model timestep, and step 3) happens during the next time step. This creates the problem that the conditions can change such that the amount promised cannot be provided, but the plants have already used them.
The way I currently address this is by mycorrhizal fungi sacrificing biomass to make sure that the provided amount is met (which stops nutrients being created from thin air). However, this can cause mycorrhizal populations to go negative (if the nutrient deficit exceed the amount of nutrient held in their total biomass).
I've previously tried to avoid this issue by making the mycorrhizal fungi more conservative about what they promise. I don't think this can ever fix the problem entirely though, as a month time step is long enough to see 100 fold changes in soil nutrient availabilities (if you start far enough away from a steady state). Forcing mycorrhizal fungi to only supply plants with 1% of the maximum amount they could supply is effectively the same thing as turning them off entirely.
The only possible solution that I can see is changing the order, so that:
- Plants decide how much carbon to supply to the mycorrhizal fungi (this could be adjusted based on previous returns)
- Based on this carbon supply and the soil conditions mycorrhizal fungi decide how much nutrients to supply to the plants
- Plants then assimilate these nutrients that were provided in the previous time step
This order would introduce a lag between plants investing carbon in symbiotic nutrient acquisition and receiving the nutrients (at present it is immediate), but I think that's probably worth it to avoid the possibility of creating nutrients from nowhere or negative mycorrhizal populations.
(There's then the possibility of adding functionality to each side of the exchange to change supply based on previous returns, etc. But that feels like something to sort out once we are into calibration/validation)
This is something that needs discussion in person because it would involve altering both models. I'm mainly just putting this up here now as something to think about in more detail in the new year
At the moment mycorrhizal uptake of nutrients happens with the following process:
Step 1) happens at the end of one soil model timestep, and step 3) happens during the next time step. This creates the problem that the conditions can change such that the amount promised cannot be provided, but the plants have already used them.
The way I currently address this is by mycorrhizal fungi sacrificing biomass to make sure that the provided amount is met (which stops nutrients being created from thin air). However, this can cause mycorrhizal populations to go negative (if the nutrient deficit exceed the amount of nutrient held in their total biomass).
I've previously tried to avoid this issue by making the mycorrhizal fungi more conservative about what they promise. I don't think this can ever fix the problem entirely though, as a month time step is long enough to see 100 fold changes in soil nutrient availabilities (if you start far enough away from a steady state). Forcing mycorrhizal fungi to only supply plants with 1% of the maximum amount they could supply is effectively the same thing as turning them off entirely.
The only possible solution that I can see is changing the order, so that:
This order would introduce a lag between plants investing carbon in symbiotic nutrient acquisition and receiving the nutrients (at present it is immediate), but I think that's probably worth it to avoid the possibility of creating nutrients from nowhere or negative mycorrhizal populations.
(There's then the possibility of adding functionality to each side of the exchange to change supply based on previous returns, etc. But that feels like something to sort out once we are into calibration/validation)
This is something that needs discussion in person because it would involve altering both models. I'm mainly just putting this up here now as something to think about in more detail in the new year