Index: wflow-py/wflow/wflow_sbm.py =================================================================== diff -u -r7ff34fb16ba9ebc7ea5bf9b1eb7fa838c4b77a64 -r7511bfaac7399429ff6c484cf952474bd2648cba --- wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision 7ff34fb16ba9ebc7ea5bf9b1eb7fa838c4b77a64) +++ wflow-py/wflow/wflow_sbm.py (.../wflow_sbm.py) (revision 7511bfaac7399429ff6c484cf952474bd2648cba) @@ -257,9 +257,9 @@ * min( 1.0, ifthenelse( - zi <= UStoreLayerThickness[0], + zi >= UStoreLayerThickness[0], UStoreLayerDepth[0] / (UStoreLayerThickness[0] * (thetaS - thetaR)), - zi / ((zi + 1.0) * (thetaS - thetaR)), + UStoreLayerDepth[0] / ((zi + 1.0) * (thetaS - thetaR)), ), ), ) @@ -1973,21 +1973,16 @@ # Limit rootingdepth (if set externally) self.ActRootingDepth = min(self.SoilThickness * 0.99, self.ActRootingDepth) - # Split between bare soil/open water and vegetation - self.potsoilopenwaterevap = self.CanopyGapFraction * self.PotTransSoil - self.PotTrans = self.PotTransSoil - self.potsoilopenwaterevap - self.PotTrans0 = self.PotTrans # Determine Open Water EVAP based on waterfrac. Later subtract this from water that # enters the Kinematic wave - self.RestEvap = self.potsoilopenwaterevap - # self.RestEvap = (self.PotTrans - self.Transpiration) + self.potsoilopenwaterevap self.ActEvapOpenWater = min( - self.WaterLevel * 1000.0 * self.WaterFrac, self.WaterFrac * self.RestEvap + self.WaterLevel * 1000.0 * self.WaterFrac, self.WaterFrac * self.PotTransSoil ) - self.RestEvap = self.RestEvap - self.ActEvapOpenWater - self.RE = self.RestEvap + + self.RestEvap = self.PotTransSoil - self.ActEvapOpenWater + self.ActEvapPond = self.ZeroMap if self.nrpaddyirri > 0: self.ActEvapPond = min(self.PondingDepth, self.RestEvap) @@ -2007,9 +2002,10 @@ self.SumThickness = self.UStoreLayerThickness[n] + self.SumThickness self.SaturationDeficit = self.SoilWaterCapacity - self.SatWaterDepth + + # evap available for soil evaporation + self.RestEvap = self.RestEvap * self.CanopyGapFraction - # self.RestPotEvap, self.SatWaterDepth, self.ActEvapSat = actEvap_sat_SBM(self.ActRootingDepth, self.zi, self.SatWaterDepth, self.PotTrans, self.rootdistpar) - self.ActEvapUStore = self.ZeroMap self.SumThickness = self.ZeroMap @@ -2058,6 +2054,8 @@ self.soilevap = min(self.soilevap, self.UStoreLayerDepth[n]) self.UStoreLayerDepth[n] = self.UStoreLayerDepth[n] - self.soilevap + + #evap available for transpiration self.PotTrans = ( self.PotTransSoil - self.soilevap - self.ActEvapOpenWater )