A linear model for neutral surface-layer flow over complex terrain is presented. The spectral approach in the two horizontal coordinates and the finite-difference method in the vertical combines the simplicity and computational efficiency of linear methods with flexibility for closure schemes of finite-difference methods. This model makes it possible to make high-resolution computations for an arbitrary distribution of surface roughness and topography. Mixing-length closure as well as E − ε closure are applied to two-dimensional flow above sinusoidal variations in surface roughness, the step-in-roughness problem, and to two-dimensional flow over simple sinusoidal topography. The main difference between the two closure schemes is found in the shear-stress results. E − ε has a more realistic description of the memory effects in length and velocity scales when the surface conditions change. Comparison between three-dimensional model calculations and field data from Askervein hill shows that in the outer layer, the advection effects in the shear stress itself are also important. In this layer, an extra equation for the shear stress is needed.