model { Tau.noninformative <- 1.0E-3 Hyper.gamma <- 1.0E-2 Tau.errD <- 100 Tau.errH <- 10000 # Measurements for (i in 1:N.branches) { # branch # growth Bdiameter08[i] ~ dnorm(bdiameter08[i], Tau.errD) Bdiameter07[i] ~ dnorm(bdiameter07[i], Tau.errD) Bposition07[i] ~ dnorm(bposition07[i], Tau.errH) bdiameter08[i] <- exp(log.bdiameter08[i]) bdiameter07[i] <- exp(log.bdiameter07[i]) bposition07[i] <- exp(log.bposition07[i]) # death Dead08[i] ~ dbern(prob[i]) logit(prob[i]) <- logit.prob[i] # proleptic shoots SegLength07[i] ~ dnorm(seg.len07[i], Tau.errH) } for (j in 1:N.trees) { # tree # growth Height07[j] ~ dnorm(height07[j], Tau.errH) height07[j] <- exp(log.height07[j]) # proleptic shoots Proleptic08[j] ~ dpois(rateP[j]) # height growth DeltaH[j] ~ dnorm(deltaH[j], Tau.errH) # sylleptic shoots Sylleptic08[j] ~ dpois(rateS[j]) } # log RGR for each branch diameter (RE: random effects) for (i in 1:N.branches) { log.bdiameter08[i] <- log.bdiameter07[i] + log.rgr[i] log.rgr[i] ~ dnorm(mean.log.rgr[i], tau[1, Spc[i]]) # branch RE mean.log.rgr[i] <- ( base.log.rgr.tree[Tree[i]] + beta[1, Spc[i]] * (bposition07[i] - Mean.bposition07) + beta[2, Spc[i]] * (log.bdiameter07[i] - Mean.log.diameter07) ) log.bdiameter07[i] ~ dnorm(0.0, Tau.noninformative) log.bposition07[i] ~ dnorm(0.0, Tau.noninformative) } # blrt: base.log.rgr.tree for each tree for (j in 1:N.trees) { base.log.rgr.tree[j] ~ dnorm(mean.blrt[j], tau[2, SpcTr[j]]) # tree RE mean.blrt[j] <- ( beta[3, SpcTr[j]] + beta[4, SpcTr[j]] * (log.height07[j] - Mean.log.height07) ) log.height07[j] ~ dnorm(0.0, Tau.noninformative) } # mortatlity: death rate for (i in 1:N.branches) { logit.prob[i] <- ( base.logit.prob[Tree[i]] + beta[5, Spc[i]] * (bposition07[i] - Mean.bposition07) + beta[6, Spc[i]] * (log.bdiameter07[i] - Mean.log.diameter07) ) } for (j in 1:N.trees) { base.logit.prob[j] ~ dnorm(mean.lp[j], tau[3, SpcTr[j]]) # tree RE mean.lp[j] <- ( beta[7, SpcTr[j]] + beta[8, SpcTr[j]] * base.log.rgr.tree[j] ) } # development rate of proleptic shoots for (i in 1:N.branches) { wgt[i] <- exp(beta[9, Spc[i]] * (bposition07[i] - seg.len07[i] * 0.5) * 0.01) seg.len07[i] ~ dnorm(0.0, Tau.noninformative) } for (j in 1:N.trees) { rateP[j] <- exp(denP[j]) * inprod( wgt[StartEnd[j, 1]:StartEnd[j, 2]], seg.len07[StartEnd[j, 1]:StartEnd[j, 2]] ) denP[j] ~ dnorm(mean.denP[j], tau[4, SpcTr[j]]) mean.denP[j] <- ( beta[10, SpcTr[j]] + beta[11, SpcTr[j]] * base.log.rgr.tree[j] ) } # height growth for (j in 1:N.trees) { deltaH[j] <- exp(log.dH[j]) log.dH[j] ~ dnorm(mean.log.dH[j], tau[5, SpcTr[j]]) mean.log.dH[j] <- ( beta[12, SpcTr[j]] + beta[13, SpcTr[j]] * base.log.rgr.tree[j] ) } # development rate of sylleptic shoot for (j in 1:N.trees) { rateS[j] <- exp(denS[j] + log.dH[j]) denS[j] ~ dnorm(mean.denS[j], tau[6, SpcTr[j]]) mean.denS[j] <- ( beta[14, SpcTr[j]] + beta[15, SpcTr[j]] * log.dH[j] ) } # parameters -------------------------------------------------------------- for (k in 1:N.beta) { for (kk in 1:N.spc) { beta[k, kk] ~ dnorm(0.0, Tau.noninformative) } } for (k in 1:N.tau) { for (kk in 1:N.spc) { tau[k, kk] ~ dgamma(Hyper.gamma, Hyper.gamma) } } }