Index: wflow-py/wflow/wflow_sbm.py =================================================================== diff -u -rca8480f9ef36c09ba55cb0b5a1fa263dec2b14c1 -r4a17d32156e2ff33371b9ea393f932f7d2ff215b --- wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision ca8480f9ef36c09ba55cb0b5a1fa263dec2b14c1) +++ wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision 4a17d32156e2ff33371b9ea393f932f7d2ff215b) @@ -1208,11 +1208,11 @@ # discharge (m3/s) self.SurfaceRunoff = kinematic(self.TopoLdd, self.SurfaceRunoff, q, self.Alpha, self.Beta, self.Tslice, self.timestepsecs, self.DCL) # m3/s - self.SurfaceRunoffMM = self.SurfaceRunoff * self.QMMConv # SurfaceRunoffMM (mm) from SurfaceRunoff (m3/s) - self.updateRunOff() + self.InflowKinWaveCell = upstream(self.TopoLdd, self.SurfaceRunoff) - maxit = 10 # max number of iteration in abstraction calculations + + maxit = 5 # max number of iteration in abstraction calculations nrit = 0 if float(mapminimum(spatial(self.Inflow))) < 0.0: while True: @@ -1233,12 +1233,16 @@ self.SurfaceRunoffMM = self.SurfaceRunoff * self.QMMConv # SurfaceRunoffMM (mm) from SurfaceRunoff (m3/s) self.updateRunOff() self.InflowKinWaveCell = upstream(self.TopoLdd, self.OldSurfaceRunoff) - deltasup = float(mapmaximum(abs(oldsup - self.SurfaceWaterSupply))) if deltasup < 0.01 or nrit >= maxit: break + else: + self.SurfaceRunoffMM = self.SurfaceRunoff * self.QMMConv # SurfaceRunoffMM (mm) from SurfaceRunoff (m3/s) + self.updateRunOff() + + self.MassBalKinWave = (-self.KinWaveVolume + self.OldKinWaveVolume) / self.timestepsecs +\ self.InflowKinWaveCell + self.Inwater - self.SurfaceRunoff