  We investigate the Riemann problem for the shallow water equations with
variable and (possibly) discontinuous topography and provide a complete
description of the properties of its solutions: existence; uniqueness in the
non-resonant regime; multiple solutions in the resonant regime. This analysis
leads us to a numerical algorithm that provides one with a Riemann solver.
Next, we introduce a Godunov-type scheme based on this Riemann solver, which is
well-balanced and of quasi-conservative form. Finally, we present numerical
experiments which demonstrate the convergence of the proposed scheme even in
the resonance regime, except in the limiting situation when Riemann data
precisely belong to the resonance hypersurface.
