inst/doc/new_T_responses.R

## ---- echo=FALSE, fig.width=8, fig.height=4-----------------------------------
.Rgas <- function()8.314
Tk <- function(x)x+273.15
TJmax <- function(Tleaf, EaJ, delsJ, EdVJ){
  J1 <- 1+exp((298.15*delsJ-EdVJ)/.Rgas()/298.15)
  J2 <- 1+exp((Tk(Tleaf)*delsJ-EdVJ)/.Rgas()/Tk(Tleaf))
  exp(EaJ/.Rgas()*(1/298.15 - 1/Tk(Tleaf)))*J1/J2
}

# Vcmax temperature response (Arrhenius)
TVcmax <- function(Tleaf, EaV, delsC, EdVC){
  
  if(EdVC > 0){
    V1 <- 1+exp((delsC*(25 + 273.15)-EdVC)/(.Rgas()*(25 + 273.15)))
    V2 <- 1+exp((delsC*(Tleaf+273.15)-EdVC)/(.Rgas()*(Tk(Tleaf))))
    f <- V1/V2
  } else f <- 1
  
  exp((Tleaf-25)*EaV/(.Rgas()*Tk(Tleaf)*Tk(25))) * f
}

par(mfrow=c(1,2))
curve(TVcmax(x, 82620.87,645.1013,0), from=10, to=40, ylim=c(0,4),
      xlab=expression(T[leaf]~~(degree*C)), 
      ylab=expression(V[cmax] / V[cmax25]))
curve(TVcmax(x, 58550,629.26,200000), from=10, to=40, lty=5, add=T)
legend("topleft", c("old","new"), lty=c(1,5))

curve(TJmax(x, 39676.89, 641.3615, 200000), from=10, to=40, ylim=c(0,1.4),
      xlab=expression(T[leaf]~~(degree*C)), 
      ylab=expression(J[max] / J[max25]))
curve(TJmax(x, 29680, 631.88, 200000), from=10, to=40, add=T, lty=5)

Try the plantecophys package in your browser

Any scripts or data that you put into this service are public.

plantecophys documentation built on April 1, 2021, 1:06 a.m.