64: Implementation of the Introductory Carbon Balance Model...

Description Usage Arguments Author(s) References See Also Examples

Description

This function is an implementation of the Introductory Carbon Balance Model (ICBM). This is simply a two pool model connected in series.

Usage

1
2
3
ICBMModel(t, ks = c(k1 = 0.8, k2 = 0.00605), h = 0.13, r = 1.32, 
    c0 = c(Y0 = 0.3, O0 = 3.96), In = 0, solver = deSolve.lsoda.wrapper, 
    pass = FALSE)

Arguments

t

A vector containing the points in time where the solution is sougth.

ks

A vector of length 2 with the decomposition rates for the young and the old pool.

h

Humufication coefficient (transfer rate from young to old pool).

r

External (environmental or edaphic) factor.

c0

A vector of length 2 with the initial value of carbon stocks in the young and old pool.

In

Mean annual carbon input to the soil.

solver

A function that solves the system of ODEs. This can be euler or ode or any other user provided function with the same interface.

pass

if TRUE forces the constructor to create the model even if it is invalid

Author(s)

Carlos A. Sierra <[email protected]>, Markus Mueller <[email protected]>

References

Andren, O. and T. Katterer. 1997. ICBM: The Introductory Carbon Balance Model for Exploration of Soil Carbon Balances. Ecological Applications 7:1226-1236.

See Also

TwopSeriesModel

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# This example reproduces the simulations 
# presented in Table 1 of Andren and Katterer (1997).
# First, the model is run for different values of the 
# parameters representing different field experiments. 
times=seq(0,20,by=0.1)
Bare=ICBMModel(t=times) #Bare fallow
pNpS=ICBMModel(t=times, h=0.125, r=1,    c0=c(0.3,4.11),  In=0.19+0.095) #+N +Straw
mNpS=ICBMModel(t=times, h=0.125, r=1.22, c0=c(0.3, 4.05), In=0.19+0.058) #-N +Straw
mNmS=ICBMModel(t=times, h=0.125, r=1.17, c0=c(0.3, 3.99), In=0.057) #-N -Straw
pNmS=ICBMModel(t=times, h=0.125, r=1.07, c0=c(0.3, 4.02), In=0.091) #+N -Straw
FM=ICBMModel(t=times, h=0.250, r=1.10, c0=c(0.3, 3.99), In=0.19+0.082) #Manure
SwS=ICBMModel(t=times, h=0.340, r=0.97, c0=c(0.3, 4.14), In=0.19+0.106) #Sewage Sludge
SS=ICBMModel(t=times, h=0.125, r=1.00, c0=c(0.25, 4.16), In=0.2)  #Steady State

#The amount of carbon for each simulation is recovered with the function getC
CtBare=getC(Bare)
CtpNpS=getC(pNpS)
CtmNpS=getC(mNpS)
CtmNmS=getC(mNmS)
CtpNmS=getC(pNmS)
CtFM=getC(FM)
CtSwS=getC(SwS)
CtSS=getC(SS)

#This plot reproduces Figure 1 in Andren and Katterer (1997)
plot(times,
  rowSums(CtBare),
  type="l",
  ylim=c(0,8),
  xlim=c(0,20),
  ylab="Topsoil carbon mass (kg m-2)",
  xlab="Time (years)"
)
lines(times,rowSums(CtpNpS),lty=2)
lines(times,rowSums(CtmNpS),lty=3)
lines(times,rowSums(CtmNmS),lty=4)
lines(times,rowSums(CtpNmS),lwd=2)
lines(times,rowSums(CtFM),lty=2,lwd=2)
lines(times,rowSums(CtSwS),lty=3,lwd=2)
#lines(times,rowSums(CtSS),lty=4,lwd=2)
legend("topleft",
  c("Bare fallow",
    "+N +Straw",
    "-N +Straw",
    "-N -Straw",
    "+N -Straw",
    "Manure",
   "Sludge"
  ),
  lty=c(1,2,3,4,1,2,3),
  lwd=c(1,1,1,1,2,2,2),
  bty="n"
)
 

Example output

Loading required package: deSolve
Loading required package: parallel
Loading required package: RUnit

SoilR documentation built on May 29, 2017, 10:57 a.m.