SUMMARYAn accurate, efficient and robust numerical method for the solution of the section-averaged De St. Venant equations of open channel flow is presented and discussed. The method consists in a semi-implicit, finitevolume discretization of the continuity equation capable to deal with arbitrary cross-section geometry and in a semi-implicit, finite-difference discretization of the momentum equation. By using a proper semiLagrangian discretization of the momentum equation, a highly efficient scheme that is particularly suitable for subcritical regimes is derived. Accurate solutions are obtained in all regimes, except in presence of strong unsteady shocks as in dam-break cases. By using a suitable upwind, Eulerian discretization of the same equation, instead, a scheme capable of describing accurately also unsteady shocks can be obtained, although this scheme requires to comply with a more restrictive stability condition. The formulation of the two approaches allows a unified implementation and an easy switch between the two. The code is verified in a wide range of idealized test cases, highlighting its accuracy and efficiency characteristics, especially for long time range simulations of subcritical river flow. Finally, a model validation on field data is presented, concerning simulations of a flooding event of the Adige river.