Here you go.
Ben
for(i in 1:N){ vector[S] z = trunc_mvn(mu[i], L_Sigma, lb, y_cen[i], u)[1]; // Inverse CDF of truncated multivariate normal for(j in 1:S){ if(y[i, j] > lb[j]) { target += normal_lpdf(y[i, j] | mu[i, j], L_Sigma[j, j]); } else { target += log1m(Phi(z[j])); } } target += log(trunc_mvn(mu[i], L_Sigma, lb, y_cen[i], u)[2]); // Jacobian adjustments // implicit: u ~ uniform(0,1)}