Skip to content

Adding nutrient constraints on photosynthesis #597

@jenniferholm

Description

@jenniferholm

I've started to add in some code that will take into account potential nutrient deficiencies that can constrain photosynthesis. This is a needed step to help wrap up all the work @rgknox, Qing, and other have worked on with PARTEH. There has been good progress on nutrient allocation, nutrient enabled litterfall, and nutrient acquisition. Now the component for taking into account nutrient controls of photosynthesis is needed.

I'm basing these additions off the current ELM photosynthesis code. @walkeranthonyp - I know we talked at AGU about further improvements you would like to do with photosynthesis. Correct me if I'm wrong, but I'm not overlapping am I? I just want to get in the current equations and methods so we can fully test PARTEH.
I'd like to bring in these changes in a couple different pull requests. Currently I've added in the new variables that are needed to calculate a new vcmax and jmax, and leaf phosphorus content, etc. into the different modules and subroutines, etc.

Then I'm thinking a good plan is to bring in the different options of nutrient modes.
First - equations for if C only
Second - equations for if CN (but I'm checking on some calculations that might already be in FATES, and redundancies).
Third - equations for if CNP using data from Walker 2014

Here are a few general questions I have for the group --

  1. This is not completely related to nutrients, but in subroutine LeafLayerBiophysicalRates, when FATES is accounting for temperature on photosynthesis rates....why are there a couple equations that are in ELM, but not in FATES. Does FATES not requires these, or are the calculations done somewhere else? I know we are not the same as ELM, but just wondering if code updates need to occur.

In FATES the below 3 variables are read in from the parameter file,

vcmaxse = EDPftvarcon_inst%vcmaxse(FT)
jmaxse = EDPftvarcon_inst%jmaxse(FT)
tpuse = EDPftvarcon_inst%tpuse(FT)
vcmaxc = fth25_f(vcmaxhd, vcmaxse)
jmaxc = fth25_f(jmaxhd, jmaxse)
tpuc = fth25_f(tpuhd, tpuse)

but ELM calculates them as...

vcmaxse = 668.39_r8 - 1.07_r8 * min(max((t10(p)-tfrz),11._r8),35._r8)
jmaxse  = 659.70_r8 - 0.75_r8 * min(max((t10(p)-tfrz),11._r8),35._r8)
tpuse = vcmaxse
vcmaxc = fth25 (vcmaxhd, vcmaxse)
jmaxc  = fth25 (jmaxhd, jmaxse)
tpuc   = fth25 (tpuhd, tpuse)

  1. I need to bring in a new variable that keeps track of the 10-day running mean of the 2m temperature. I just want to double check, this should be a "bc_in(s)" boundary condition input from ELM, right? There is also the option for this to be at the site level or patch level. When dealing with photosynthesis I believe patch level for 10-day mean temp "bc_in(s)%t_veg_pa(ifp)", is correct, right?

Thanks all. I'll be added updates as I go, and post pull requests here and reviewers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions