This function creates a model for three pools connected in series. It is a
wrapper for the more general function GeneralModel_14
that can
handle an arbitrary number of pools.
ThreepSeriesModel14(
t,
ks,
C0,
F0_Delta14C,
In,
a21,
a32,
xi = 1,
inputFc,
lambda = -0.0001209681,
lag = 0,
solver = deSolve.lsoda.wrapper,
pass = FALSE
)
A Model Object that can be further queried
A vector containing the points in time where the solution is
sought. It must be specified within the same period for which the Delta 14 C
of the atmosphere is provided. The default period in the provided dataset
C14Atm_NH
is 1900-2010.
A vector of length 3 containing the decomposition rates for the 3 pools.
A vector of length 3 containing the initial amount of carbon for the 3 pools.
A vector of length 3 containing the initial amount of the radiocarbon fraction for the 3 pools.
A scalar or a data.frame object specifying the amount of litter inputs by time.
A scalar with the value of the transfer rate from pool 1 to pool 2.
A scalar with the value of the transfer rate from pool 2 to pool 3 as Delta14C values in per mil.
A scalar or a data.frame specifying the external (environmental and/or edaphic) effects on decomposition rates.
A Data Frame object containing values of atmospheric Delta14C per time. First column must be time values, second column must be Delta14C values in per mil.
Radioactive decay constant. By default lambda=-0.0001209681 y^-1 . This has the side effect that all your time related data are treated as if the time unit was year.
A positive scalar representing a time lag for radiocarbon to enter the system.
A function that solves the system of ODEs. This can be
euler
or deSolve.lsoda.wrapper
or any other user
provided function with the same interface.
if TRUE Forces the constructor to create the model even if it is invalid
There are other predefinedModels
and also more
general functions like Model_14
.
years=seq(1901,2009,by=0.5)
LitterInput=700
Ex=ThreepSeriesModel14(
t=years,ks=c(k1=1/2.8, k2=1/35, k3=1/100),
C0=c(200,5000,500), F0_Delta14C=c(0,0,0),
In=LitterInput, a21=0.1, a32=0.01,inputFc=C14Atm_NH
)
R14m=getF14R(Ex)
C14m=getF14C(Ex)
C14t=getF14(Ex)
par(mfrow=c(2,1))
plot(C14Atm_NH,type="l",xlab="Year",
ylab="Delta 14C (per mil)",xlim=c(1940,2010))
lines(years, C14t[,1], col=4)
lines(years, C14t[,2],col=4,lwd=2)
lines(years, C14t[,3],col=4,lwd=3)
legend(
"topright",
c("Delta 14C Atmosphere", "Delta 14C pool 1", "Delta 14C pool 2", "Delta 14C pool 3"),
lty=rep(1,4),col=c(1,4,4,4),lwd=c(1,1,2,3),bty="n")
plot(C14Atm_NH,type="l",xlab="Year",ylab="Delta 14C (per mil)",xlim=c(1940,2010))
lines(years,C14m,col=4)
lines(years,R14m,col=2)
legend("topright",c("Delta 14C Atmosphere","Delta 14C SOM", "Delta 14C Respired"),
lty=c(1,1,1), col=c(1,4,2),bty="n")
par(mfrow=c(1,1))
Run the code above in your browser using DataLab