model { tau.noninformative <- 1.0E-2 error.gamma <- 1.0E-2 hyper.gamma <- 1.0E-2 # observation for (i in 1:n.sample) { log.wr.obs[i] ~ dnorm(log.wr[i], tau.err[1]) log.ws.obs[i] ~ dnorm(log.ws[i], tau.err[1]) log.wl.obs[i] ~ dnorm(log.wl[i], tau.err[1]) log.hs.obs[i] ~ dnorm(log.hs[i], tau.err[2]) log.cw1.obs[i] ~ dnorm(log.cw1[i], tau.err[2]) log.cw2.obs[i] ~ dnorm(log.cw2[i], tau.err[2]) log.hr.obs[i] ~ dnorm(log.hr[i], tau.err[2]) log.rw1.obs[i] ~ dnorm(log.rw1[i], tau.err[2]) log.rw2.obs[i] ~ dnorm(log.rw2[i], tau.err[2]) } # mean values for (i in 1:n.sample) { # weight allocation root vs shoot log.w[i] ~ dnorm(log.a[1, spc[i]], tau.w) logit(p[i]) <- ( coefbase[1] + coefspc[1, spc[i]] + coefbase[8] * (log.w[i] - log.a[1, spc[i]]) ) log.wsl[i] <- log(p[i]) + log.w[i] # shoot (stem + leaves) log.wr[i] <- log(1.0 - p[i]) + log.w[i] # root # weight allocation stem vs foliage logit(q[i]) <- ( coefbase[2] + coefspc[2, spc[i]] + coefbase[9] * (log.wsl[i] - mean.log.wsl.obs) ) log.wl[i] <- log(q[i]) + log.wsl[i] # leaves log.ws[i] <- log(1.0 - q[i]) + log.wsl[i] # stem # log.Ws -> log.Cw + log.Hs logit(ph[i]) <- ( coefbase[3] + coefspc[3, spc[i]] + coefbase[10] * (log.ws[i] - mean.log.ws.obs) ) log.hs[i] <- log(ph[i]) + log.ws[i] - log.a[2, spc[i]] log.cw1[i] <- 0.5 * ( log(1.0 - ph[i]) + log.ws[i] - log.a[2, spc[i]] ) log.cw2[i] <- log.cw1[i] + log.conv12[1] # log.Wr -> log.Rw + log.Hr logit(phr[i]) <- ( coefbase[4] + coefspc[4, spc[i]] + coefbase[11] * (log.wr[i] - mean.log.wr.obs) ) log.hr[i] <- log(phr[i]) + log.wr[i] - log.a[3, spc[i]] log.rw1[i] <- 0.5 * ( log(1.0 - phr[i]) + log.wr[i] - log.a[3, spc[i]] ) log.rw2[i] <- log.rw1[i] + log.conv12[2] } for (s in 1:n.spc) { log.a[1, s] <- coefbase[5] + coefspc[5, s] log.a[2, s] <- coefbase[6] + coefspc[6, s] log.a[3, s] <- coefbase[7] + coefspc[7, s] } # priors and hyper-priors tau.w ~ dgamma(hyper.gamma, hyper.gamma) # non-informative for (k in 1:n.tau) { tau.err[k] ~ dgamma(error.gamma, error.gamma) # non-informative } for (k in 1:n.coefbase) { coefbase[k] ~ dnorm(0.0, tau.noninformative) # common part } for (k in 1:n.coefspc) { tau.coefspc[k] ~ dgamma(hyper.gamma, hyper.gamma) # non-informative for (s in 1:n.spc) { # differences among species coefspc[k, s] ~ dnorm(0.0, tau.coefspc[k]) } } for (k in 1:n.conv12) { log.conv12[k] ~ dnorm(0.0, tau.noninformative) } }