From 17e62dfa9671e15f023b267a63b1d69a48ba58db Mon Sep 17 00:00:00 2001 From: casadoj Date: Fri, 4 Jul 2025 16:59:15 +0200 Subject: [PATCH 1/3] Update parameter k to be dynamic --- src/lisflood/hydrological_modules/reservoir.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/lisflood/hydrological_modules/reservoir.py b/src/lisflood/hydrological_modules/reservoir.py index 38600106..7af627e2 100755 --- a/src/lisflood/hydrological_modules/reservoir.py +++ b/src/lisflood/hydrological_modules/reservoir.py @@ -54,7 +54,7 @@ class Reservoir(HydroModule): Referenecs: ----------- - Hanazaki, R., Yamazaki, D., Yoshimura, K.: Development of a Reservoir FLood Control Scheme for + Hanazaki, R., Yamazaki, D., Yoshimura, K.: Development of a Reservoir Flood Control Scheme for Global Flood Models, Journal of Advances in Modeling Earth Systems, 14, https://doi.org/10.1029/2021MS002944, 2022. """ @@ -189,8 +189,8 @@ def initial(self): flood_outflow = np.compress(self.var.ReservoirSitesC > 0, flood_outflow) self.var.FloodReservoirOutflow = np.maximum(self.var.NormalReservoirOutflow, factor_outflow * flood_outflow) - # release coefficient - self.var.k = np.maximum(1 - 5 * self.var.TotalReservoirStorageM3CC * (1 - self.var.FloodStorageLimit) / self.var.CatchmentAreaM2, 0) + # # release coefficient + # self.var.k = np.maximum(1 - 5 * self.var.TotalReservoirStorageM3CC * (1 - self.var.FloodStorageLimit) / self.var.CatchmentAreaM2, 0) # INITIAL CONDITIONS @@ -236,7 +236,6 @@ def dynamic_inloop(self, NoRoutingExecuted: int): InvDtSecDay = 1 / float(86400) # InvDtSecDay=self.var.InvDtSec - # storage limits conservative_fill = self.var.ConservativeStorageLimit @@ -248,7 +247,7 @@ def dynamic_inloop(self, NoRoutingExecuted: int): normal_outflow = self.var.NormalReservoirOutflow conservative_outflow = normal_outflow * conservative_fill / flood_fill flood_outflow = self.var.FloodReservoirOutflow - + # reservoir inflow in [m3/s] # (LddStructuresKinematic equals LddKinematic, but without the pits/sinks upstream of the structure # locations; note that using Ldd here instead would introduce MV!) @@ -260,9 +259,14 @@ def dynamic_inloop(self, NoRoutingExecuted: int): # flood event inflow_mask = inflow >= flood_outflow - # update reservoir storage [m3] and filling [-] + # current reservoir storage [m3] if NoRoutingExecuted == 0: self.var.ReservoirStorageM3CC = np.compress(self.var.ReservoirSitesC > 0, self.var.ReservoirStorageM3) + + # release coefficient + self.var.k = np.maximum(1 - (self.var.TotalReservoirStorageM3CC - self.var.ReservoirStorageM3CC) / (self.var.CatchmentAreaM2 * 0.2), 0) + + # update reservoir storage [m3] and filling [-] self.var.ReservoirStorageM3CC += inflow_m3 self.var.ReservoirFillCC = self.var.ReservoirStorageM3CC / self.var.TotalReservoirStorageM3CC From 82a3c589332d3c3be6114c7525af2bcb0a5c398c Mon Sep 17 00:00:00 2001 From: casadoj Date: Mon, 7 Jul 2025 15:33:36 +0200 Subject: [PATCH 2/3] Update computation of reservoir release coefficient "k" --- src/lisflood/hydrological_modules/reservoir.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/lisflood/hydrological_modules/reservoir.py b/src/lisflood/hydrological_modules/reservoir.py index 7af627e2..26d0b72a 100755 --- a/src/lisflood/hydrological_modules/reservoir.py +++ b/src/lisflood/hydrological_modules/reservoir.py @@ -187,10 +187,7 @@ def initial(self): flood_outflow = lookupscalar(str(binding['ReservoirFloodOutflow']), ReservoirSitePcr) flood_outflow = compressArray(flood_outflow) flood_outflow = np.compress(self.var.ReservoirSitesC > 0, flood_outflow) - self.var.FloodReservoirOutflow = np.maximum(self.var.NormalReservoirOutflow, factor_outflow * flood_outflow) - - # # release coefficient - # self.var.k = np.maximum(1 - 5 * self.var.TotalReservoirStorageM3CC * (1 - self.var.FloodStorageLimit) / self.var.CatchmentAreaM2, 0) + self.var.FloodReservoirOutflow = np.maximum(self.var.NormalReservoirOutflow, factor_outflow * flood_outflow) # INITIAL CONDITIONS From c6553b1f15a90bfc4081d0ecace4cd560a445c79 Mon Sep 17 00:00:00 2001 From: Carlo Russo Date: Mon, 7 Jul 2025 16:24:08 +0200 Subject: [PATCH 3/3] Updated temporary version number --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 58ca1887..91a2c526 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.3.1.503 \ No newline at end of file +4.3.1.504 \ No newline at end of file