Index: wflow-py/wflow/wflow_sbm.py =================================================================== diff -u -r4a17d32156e2ff33371b9ea393f932f7d2ff215b -r91d6bcb5e0e6908c800b79712b77ad3cce13a5d3 --- wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision 4a17d32156e2ff33371b9ea393f932f7d2ff215b) +++ wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision 91d6bcb5e0e6908c800b79712b77ad3cce13a5d3) @@ -394,6 +394,7 @@ self.updating = int(configget(self.config, "model", "updating", "0")) self.updateFile = configget(self.config, "model", "updateFile", "no_set") self.LateralMethod = int(configget(self.config, "model", "lateralmethod", "1")) + self.maxitsupply = int(configget(self.config, "model", "maxitsupply", "5")) if self.LateralMethod == 1: @@ -1209,15 +1210,12 @@ self.SurfaceRunoff = kinematic(self.TopoLdd, self.SurfaceRunoff, q, self.Alpha, self.Beta, self.Tslice, self.timestepsecs, self.DCL) # m3/s - self.InflowKinWaveCell = upstream(self.TopoLdd, self.SurfaceRunoff) - - - maxit = 5 # max number of iteration in abstraction calculations - nrit = 0 + self.nrit = 0 if float(mapminimum(spatial(self.Inflow))) < 0.0: while True: - nrit += 1 + self.nrit += 1 oldsup = self.SurfaceWaterSupply + self.InflowKinWaveCell = upstream(self.TopoLdd, self.SurfaceRunoff) ########################################################################## # Iterate to make a better estimation for the supply ##################### # (Runoff calculation via Kinematic wave) ################################ @@ -1231,12 +1229,13 @@ self.SurfaceRunoff = kinematic(self.TopoLdd, self.OldSurfaceRunoff, 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.OldSurfaceRunoff) deltasup = float(mapmaximum(abs(oldsup - self.SurfaceWaterSupply))) - if deltasup < 0.01 or nrit >= maxit: + if deltasup < 0.01 or self.nrit >= self.maxitsupply: break + self.updateRunOff() else: self.SurfaceRunoffMM = self.SurfaceRunoff * self.QMMConv # SurfaceRunoffMM (mm) from SurfaceRunoff (m3/s) self.updateRunOff()