Hello, I am getting the following error message, “Semantic error… Ill-typed arguments supplied to function ‘neg_binomial’: The first argument must be int but got real”. The model is shown below:
// Model including Shuswap Lake elevation -> restricts analysis to 11 years
data {
  int<lower=0> N;         //number of days
  int<lower=0> K;         //number of years
  int year[N];         //years
  vector[N] s_elev;       //shuswap lake elevation
  vector[N] dop;        //julian day
  vector[N] s_mt;  //infilled mean daily stream temperature
  vector[N] s_cumics;       //stream flow
  vector[N] f_rem;        //daily abundance of fish remaining below the fence
  vector[N] f_pass;       //daily abundance of fish that passed the fence
}
parameters {
  vector[5] beta;
  real intercept;
  real u[K]; //random effect of year
  real<lower=0> sigma_u; //standard deviation of random effects
  real<lower=0, upper=1> B1; //negative binomial dispersion parameter
  real<lower=0, upper=1> B2; //negative binomial dispersion parameter
}
transformed parameters{
  vector[N] res;
  res[1] = 0;
  for(n in 2:N){
    res[n] = f_pass[n-1] - (beta[1] * s_elev[n-1] + beta[2] * dop[n-1] + beta[3] * dop[n-1]^2 + beta[4] * s_mt[n-1] + beta[5] * s_cumics[n-1] + u[year[n-1]] + res[n-1] + f_rem[n-1] + intercept);
  }
}
model {
  f_pass[1] ~ neg_binomial(beta[1] * s_elev[1] + beta[2] * dop[1] + beta[3] * dop[1]^2 + beta[4] * s_mt[1] + beta[5] * s_cumics[1] + u[year[1]] + f_rem[1] + intercept, B1);
  for(i in 2:N){
    f_pass[i] ~ neg_binomial(beta[1] * s_elev[i] + beta[2] * dop[i] + beta[3] * dop[i]^2 + beta[4] * s_mt[i] + beta[5] * s_cumics[i] + u[year[i]] + res[i] + f_rem[i] + intercept, B2);
  }
  beta ~ normal(0, 5);
  intercept ~ normal(0,5);
  u ~ normal(0, sigma_u);
  B1 ~ beta(2,2);
  B2 ~ beta(2,2);
  sigma_u ~ cauchy(0,2);
}
generated quantities {
  vector[N] log_lik;
  log_lik[1] = neg_binomial_lpmf(f_pass[1] | beta[1] * s_elev[1] + beta[2] * dop[1] + beta[3] * dop[1]^2 + beta[4] * s_mt[1] + beta[5] * s_cumics[1] + u[year[1]] + f_rem[1] + intercept, B1);
  for(i in 2:N){
    log_lik[i] = neg_binomial_lpmf(f_pass[i] | beta[1] * s_elev[i] + beta[2] * dop[i] + beta[3] * dop[i]^2 + beta[4] * s_mt[i] + beta[5] * s_cumics[i] + u[year[i]] + res[i] + f_rem[i] + intercept, B2);
  } 
}
The error code is specifically referencing model and generated quantities sections. I’m sure its a relatively small error but hours of staring at it hasn’t lead to a solution.