Hello,
I would advise that you take subroutine siphon.f in your Fortran file, and look how the discharge Q is built after the line IF(SI.GE.S2)..., especially the tests between S1 and S2 (free surfaces at both ends, and ALTSCE(I1), ALTSCE(I2), elevations of nozzles, you will see exactly the formula giving Q, so you can find what parameter makes a problem in your case. Please note that there is also a relaxation after computing Q. You can also see the test case called siphon.
With best regards,
Jean-Michel Hervouet