We report the verification and validation of the numerical core of an atmospheric flow and pollutant-dispersion module, in which the Reynolds-averaged Navier–Stokes equations with a k–ε closure and an advection–diffusion equation for pollutants are discretised by a conservative finite-volume method. Convective schemes, linear solvers and the pressure-correction algorithm were tested against manufactured solutions, a Poisson problem, a positivity problem and the lid-driven cavity. The street-canyon prototype itself was verified with a manufactured solution on its own grid, a turbulent-channel test of the wall functions and an empty-domain test of the inflow profiles; these tests revealed two implementation errors, which were corrected. The corrected model, with standard constants, was validated against the Karlsruhe street-canyon wind-tunnel data, and the computed wall concentrations agree with the measurements within a factor of two. A sensitivity study was carried out to assess the effect of the grid, the turbulent Schmidt number, the inflow turbulence, the convective scheme and the domain size on the results.