model { Tau.noninformative <- 1.0E-2 # for non-informative dnorm() Error.gamma <- 1.0E-2 Hyper.gamma <- 1.0E-2 # Tree height (centralized in R code) for (s in 1:N.sp) { mean.log.h[s] <- bb[1] + bs[s, 1] mean.log.w[s] <- bb[2] + bs[s, 2] } for (i in 1:N.sample) { log.height[i] ~ dnorm(mean.log.h[Sp[i]], Tau.noninformative) LogHeight[i] ~ dnorm(log.height[i], tau[1]) } # W -> Wf + Ws -> Wf + Wb + Wp for (i in 1:N.sample) { # insect damage damage[i] ~ dunif(Damage.min[i], Damage.max[i]) # weight allocation stem vs foliage log.w[i] ~ dnorm(mean.log.w[Sp[i]], tau[2]) mean.logit.pf[i] <- ( bb[3] + bs[Sp[i], 3] + (bb[4] + bs[Sp[i], 4]) * log.height[i] + (bb[5] + bs[Sp[i], 5]) * (log.w[i] - MeanLogW) ) logit.pf[i] ~ dnorm(mean.logit.pf[i], tau[7]) logit(pf[i]) <- logit.pf[i] log.wf[i] <- log.w[i] + log(pf[i]) + log(1 - damage[i]) log.ws[i] <- log.w[i] + log(1 - pf[i]) LogWf[i] ~ dnorm(log.wf[i], tau[3]) LogWs[i] ~ dnorm(log.ws[i], tau[3]) # Ws -> Wb + Wp mean.logit.pp[i] <- ( bb[6] + bs[Sp[i], 6] + (bb[7] + bs[Sp[i], 7]) * log.ws[i] ) logit.pp[i] ~ dnorm(mean.logit.pp[i], tau[8]) logit(pp[i]) <- logit.pp[i] log.wp[i] <- log.ws[i] + log(pp[i]) log.wb[i] <- log.ws[i] + log(1 - pp[i]) LogWp[i] ~ dnorm(log.wp[i], tau[3]) LogWb[i] ~ dnorm(log.wb[i], tau[3]) } # log.Wf -> log.areaL + log.SLA for (i in 1:N.sample) { log.SLA[i] <- ( bb[8] + bs[Sp[i], 8] + (bb[9] + bs[Sp[i], 9]) * log.height[i] ) log.areaL[i] <- log.SLA[i] + log.wf[i] LogAreaL[i] ~ dnorm(log.areaL[i], tau[4]) } # log.Wb -> log.V + log.C -> log.D + log.L + log.C for (i in 1:N.sample) { log.ddl[i] <- log.wb[i] - bb[10] - bs[Sp[i], 10] # isometric model (2007-12-08b) ### mean.log.dl[i] <- ( ### bb[11] + bs[Sp[i], 11] ### + (bb[12] + bs[Sp[i], 12]) * log.height[i] ### ) ### log.dl[i] ~ dnorm(mean.log.dl[i], tau[9]) ### log.d[i] <- (log.ddl[i] - log.dl[i]) * 0.333333 ### log.l[i] <- log.d[i] + log.dl[i] # allometric model (2007-12-10a) a[i] <- ( bb[11] + bs[Sp[i], 11] + (bb[12] + bs[Sp[i], 12]) * log.height[i] ) b[i] <- bb[13] + bs[Sp[i], 13] log.mean.l[i] <- a[i] + b[i] * log.d[i] log.l[i] ~ dnorm(log.mean.l[i], tau[9]) log.d[i] <- (log.ddl[i] - log.l[i]) * 0.5 # observations LogL[i] ~ dnorm(log.l[i], tau[5]) LogD1[i] ~ dnorm(log.d[i], tau[6]) LogD2[i] ~ dnorm(log.d[i], tau[6]) } # priors and hyper-priors for (k in 1:N.bb.bs) { bb[k] ~ dnorm(0.0, Tau.noninformative) # common part for (s in 1:N.sp) { # differences among species bs[s, k] ~ dnorm(0.0, tau.bs[k]) } tau.bs[k] ~ dgamma(Hyper.gamma, Hyper.gamma) # non-informative } # measurement errors for (k in 1:N.tau) { tau[k] ~ dgamma(Error.gamma, Error.gamma) # non-informative } }