From 0cdd8938ca8a489e50a6d82e4e34da810688c0e5 Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@irstea.fr>
Date: Mon, 15 Jun 2020 12:18:39 +0200
Subject: [PATCH] v1.6.2.2 feat: limit negative flow in SD model

- if direct upstream flow leads to negative downstream flow a warning is displayed and downstream flow is set to zero

Refs #34
---
 DESCRIPTION  | 2 +-
 R/RunModel.R | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index b2be25de..a517127e 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: airGR
 Type: Package
 Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling
-Version: 1.6.2.1
+Version: 1.6.2.2
 Date: 2020-06-05
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")),
diff --git a/R/RunModel.R b/R/RunModel.R
index 269cca12..dabe11d2 100644
--- a/R/RunModel.R
+++ b/R/RunModel.R
@@ -36,6 +36,11 @@ RunModel <- function (InputsModel, RunOptions, Param, FUN_MOD) {
           Qupstream[(2 + floor(PT[upstream_basin])):LengthTs]) *
         HUTRANS[2, upstream_basin]
     }
+    # Warning for negative flows
+    if(any(OutputsModelDown$Qsim < 0)) {
+      warning(length(which(OutputsModelDown$Qsim < 0)), " time steps with negative flow, set to zero.")
+      OutputsModelDown$Qsim[OutputsModelDown$Qsim < 0] <- 0
+    }
     # Convert back Qsim to mm
     OutputsModelDown$Qsim <- OutputsModelDown$Qsim / sum(InputsModel$BasinAreas, na.rm = TRUE) / 1E3
 
-- 
GitLab