@@ -153,7 +153,7 @@ def initial(self):
153
153
154
154
# factor of the flood outflow
155
155
if str (binding ['ReservoirFloodOutflowFactor' ]).endswith ('txt' ):
156
- factor_outflow = lookupscalar (str (binding ['ReservoirFloodStorage ' ]), ReservoirSitePcr )
156
+ factor_outflow = lookupscalar (str (binding ['ReservoirFloodOutflowFactor ' ]), ReservoirSitePcr )
157
157
factor_outflow = compressArray (factor_outflow )
158
158
else :
159
159
factor_outflow = loadmap ('ReservoirFloodOutflowFactor' )
@@ -187,14 +187,14 @@ def initial(self):
187
187
flood_outflow = lookupscalar (str (binding ['ReservoirFloodOutflow' ]), ReservoirSitePcr )
188
188
flood_outflow = compressArray (flood_outflow )
189
189
flood_outflow = np .compress (self .var .ReservoirSitesC > 0 , flood_outflow )
190
- self .var .FloodReservoirOutflow = factor_outflow * flood_outflow
190
+ self .var .FloodReservoirOutflow = np . maximum ( self . var . NormalReservoirOutflow , factor_outflow * flood_outflow )
191
191
192
192
# release coefficient
193
193
self .var .k = np .maximum (1 - 5 * self .var .TotalReservoirStorageM3CC * (1 - self .var .FloodStorageLimit ) / self .var .CatchmentAreaM2 , 0 )
194
194
195
195
# INITIAL CONDITIONS
196
196
197
- # initial reservoir fill (fraction of total storage, [-])
197
+ # initial reservoir fill (fraction of total storage, [-])
198
198
# -9999: assume reservoirs are filled to 80% of the flood storage limit
199
199
initial_fill = loadmap ('ReservoirInitialFill' )
200
200
if np .max (initial_fill ) == - 9999 :
@@ -271,7 +271,7 @@ def dynamic_inloop(self, NoRoutingExecuted: int):
271
271
# conservative zone
272
272
outflow = np .where (
273
273
self .var .ReservoirFillCC <= conservative_fill ,
274
- normal_outflow * self .var .ReservoirFillCC / conservative_fill ,
274
+ normal_outflow * self .var .ReservoirFillCC / flood_fill ,
275
275
outflow
276
276
)
277
277
# normal zone and NO flood inflow
0 commit comments