Hello,
Depending on what you do in the initial conditions, you may trigger a hydraulic jump, or a subcritical flow that will not be compatible with the boundary conditions at the exit, which are meant for supercritical conditions, i.e. all variables are free.
There are several resons why you do not see a constant discharge. The local discharge in the results file is the depth multiplied by the norm of the velocity. The discharge that must remain constant in this case is the integral over y of the depth multiplied by the velocity along x. It is the integral of a quadratic function as both depth and velocity are linear. A post processor considers that the discharge is a linear function, so the integral is different, and sometimes the difference may be of about 15%. The discharge at the exit is also not the discharge given by the depth and the velocity but the value given by the listing when you have the keyword: CONTINUITY CORRECTION=YES
As a matter of fact the exit has a prescribed depth, which precludes solving the continuity equation, so the discharge is computed a posteriori as the flux that solves the continuity equation. When all is taken into account we find that the relative error in the mass conservation is about the accuracy of the solver, or the machine accuracy if you use the option TREATMENT OF NEGATIVE DEPTHS=2, because in this case the continuity equation is recomputed at machine accuracy.
With best regards,
Jean-Michel Hervouet