def snow_rain(self, k): """ - snow melt based on degree day factor and minimum surface temperature - meltfactor increases with temperature - - Code for ini-file: 6 """ JarvisCoefficients.calcEpSnow(self, k) #self.PotEvaporation = self.EpHour self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow self.Fm2 = max(self.Fm[k] * self.Precipitation, self.Fm[k]) self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]), 0) self.Qw1 = max(min(self.Fm2 * (self.Temperature - self.Tm[k]), self.Sw[k]), 0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1 self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0) self.Ew = self.Ew1 + (self.Ew1 / ifthenelse( self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff self.Qw = self.Qw1 + (self.Qw1 / ifthenelse( self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0, self.Sw[k]) self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k]) self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[ k] + self.Sw_t[k] self.Ew_[k] = self.Ew self.Qw_[k] = self.Qw
def snow_rain(self,k): """ - snow melt based on degree day factor and minimum surface temperature - meltfactor increases with temperature """ JarvisCoefficients.calcEpSnow(self,k) self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0),0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow self.Fm2 = max(self.Fm[k] * self.Precipitation, self.Fm[k]) self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]),0) self.Qw1 = max(min(self.Fm2 * (self.Temperature - self.Tm[k]), self.Sw[k]), 0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1 self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0) self.Ew = self.Ew1 + (self.Ew1/ifthenelse(self.Ew1 + self.Qw1 > 0 , self.Ew1 + self.Qw1 , 1)) * self.Sw_diff self.Qw = self.Qw1 + (self.Qw1/ifthenelse(self.Ew1 + self.Qw1 > 0 , self.Ew1 + self.Qw1 , 1)) * self.Sw_diff self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0 , self.Sw[k]) self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k]) self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[k] + self.Sw_t[k] self.Ew_[k] = self.Ew self.Qw_[k] = self.Qw
def snow_no_reservoir(self, k): """ This function is used when no snow zone reservoir is used and only passes fluxes from the upper reservoirs to the lower Qw = Psnow Ew = 0. Storage in snow zone = 0. !!!still needs a final check!!! k is the class indication self contains all the variables of the model """ try: JarvisCoefficients.calcEpSnow(self, k) except: JarvisCoefficients.calcEpSnowHour(self, k) self.PotEvaporation = self.EpHour self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0) self.Qw_[k] = max(self.PrecipitationSnow, 0) self.Ew_[k] = 0. self.Sw[k] = 0. self.wbSw_[k] = self.Precipitation - self.Ew_[k] - self.Qw_[k] - self.Sw[ k] + self.Sw_t[k]
def snow(self, k): """ - snow melt based on degree day factor and """ JarvisCoefficients.calcEpSnow(self, k) self.PotEvaporation = cover(ifthenelse(self.EpHour > 0, self.EpHour, 0), 0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow self.Ew1 = max(min(self.PotEvaporation, self.Sw[k]), 0) self.Qw1 = max(self.Fm[k] * (self.Temperature - self.Tm[k]), 0) self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew1 - self.Qw1 self.Sw_diff = ifthenelse(self.Sw[k] < 0, self.Sw[k], 0) self.Ew = self.Ew1 + (self.Ew1 / ifthenelse( self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff self.Qw = self.Qw1 + (self.Qw1 / ifthenelse( self.Ew1 + self.Qw1 > 0, self.Ew1 + self.Qw1, 1)) * self.Sw_diff self.Sw[k] = self.Sw_t[k] + self.PrecipitationSnow - self.Ew - self.Qw self.Sw[k] = ifthenelse(self.Sw[k] < 0, 0, self.Sw[k]) self.Sw_diff2 = ifthen(self.Sw[k] < 0, self.Sw[k]) self.wbSw_[k] = self.PrecipitationSnow - self.Ew - self.Qw - self.Sw[ k] + self.Sw_t[k] self.Ew_[k] = self.Ew self.Qw_[k] = self.Qw