Index: wflow-py/wflow/wflow_sbm2.py =================================================================== diff -u -r1bf2afee508ed3038b401d87cf785cda7c66d783 -re7a609f70e4bb73391b70fd1e5f67d3f21273150 --- wflow-py/wflow/wflow_sbm2.py (.../wflow_sbm2.py) (revision 1bf2afee508ed3038b401d87cf785cda7c66d783) +++ wflow-py/wflow/wflow_sbm2.py (.../wflow_sbm2.py) (revision e7a609f70e4bb73391b70fd1e5f67d3f21273150) @@ -1226,16 +1226,13 @@ CapFluxScale = ifthenelse(self.zi > self.RootingDepth, self.CapScale / (self.CapScale + self.zi - self.RootingDepth) * self.timestepsecs/self.basetimestep, 0.0) self.CapFlux = MaxCapFlux * CapFluxScale + ToAdd = self.CapFlux - if len(self.UStoreLayerThickness)>1: - ToAdd = self.CapFlux - - #Now add capflux to the layers one by one (from bottom to top) - #This loop is used when nr layers > 1 - for n in arange(len(self.UStoreLayerThickness)-1, -1, -1): - thisLayer = ifthenelse(self.ZiLayer <= n,min(ToAdd,(self.UStoreLayerThickness[n]*(self.thetaS-self.thetaR)-self.UStoreLayerDepth[n])), 0.0) - self.UStoreLayerDepth[n] = ifthenelse(self.ZiLayer <= n, self.UStoreLayerDepth[n] + thisLayer,self.UStoreLayerDepth[n] ) - ToAdd = ToAdd - thisLayer + #Now add capflux to the layers one by one (from bottom to top) + for n in arange(len(self.UStoreLayerThickness)-1, -1, -1): + thisLayer = ifthenelse(self.ZiLayer <= n,min(ToAdd,(self.UStoreLayerThickness[n]*(self.thetaS-self.thetaR)-self.UStoreLayerDepth[n])), 0.0) + self.UStoreLayerDepth[n] = ifthenelse(self.ZiLayer <= n, self.UStoreLayerDepth[n] + thisLayer,self.UStoreLayerDepth[n] ) + ToAdd = ToAdd - thisLayer # Determine Ksat at base @@ -1252,13 +1249,9 @@ self.SatWaterDepth = self.SatWaterDepth + self.Transfer - self.CapFlux - self.ActLeakage - self.Percolation for n in arange(0,len(self.UStoreLayerThickness)): - if len(self.UStoreLayerThickness)==1: - self.UStoreLayerDepth[n] = ifthenelse(self.ZiLayer==n,self.UStoreLayerDepth[n] - self.Transfer + self.CapFlux, self.UStoreLayerDepth[n]) - else: - self.UStoreLayerDepth[n] = ifthenelse(self.ZiLayer==n,self.UStoreLayerDepth[n] - self.Transfer, self.UStoreLayerDepth[n]) + self.UStoreLayerDepth[n] = ifthenelse(self.ZiLayer==n,self.UStoreLayerDepth[n] - self.Transfer, self.UStoreLayerDepth[n]) + - - # Determine % saturated taking into account subcell fraction self.Sat = max(self.SubCellFrac, scalar(self.SatWaterDepth >= (self.SoilWaterCapacity * 0.999)))