From fe2cc30d23e7a61c002ad78c49c6bf892c352308 Mon Sep 17 00:00:00 2001
From: Delaigue Olivier <olivier.delaigue@irstea.fr>
Date: Sun, 5 Apr 2020 09:34:50 +0200
Subject: [PATCH] v1.6.1.0 NEW: RunModel function now take into account
 semi-distribution #34

---
 DESCRIPTION  |  2 +-
 NEWS.md      |  2 +-
 R/RunModel.R | 24 +++++++++++++++++++-----
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 657e5648..efaa8e5b 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.0.2
+Version: 1.6.1.0
 Date: 2020-04-05
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")),
diff --git a/NEWS.md b/NEWS.md
index b75c75fe..20c7c5b3 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -4,7 +4,7 @@
 
 
 
-### 1.6.0.2 Release Notes (2020-04-05)
+### 1.6.1.0 Release Notes (2020-04-05)
 
 #### New features
 
diff --git a/R/RunModel.R b/R/RunModel.R
index c8ef3f53..29812bcb 100644
--- a/R/RunModel.R
+++ b/R/RunModel.R
@@ -1,7 +1,21 @@
-RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD) {
-  
+RunModel <- function (InputsModel, RunOptions, Param, FUN_MOD) {
   FUN_MOD <- match.fun(FUN_MOD)
-  
-  return(FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param))
-  
+  if ("SD" %in% class(InputsModel)) {
+    Outputs_down <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, 
+                            Param = Param[-length(Param)])
+    Outputs_down$Qdown <- Outputs_down$Qsim
+    if ("daily" %in% class(InputsModel)){
+      TimeStep <- 60 * 60 * 24
+    }
+    if ("hourly" %in% class(InputsModel)){
+      TimeStep <- 60 * 60
+    }
+    surf_tot <- sum(InputsModel$S_basin)
+    Outputs_down$Qsim <- Outputs_down$Qdown * InputsModel$S_basin[length(InputsModel$S_basin)] / surf_tot + 
+      1000 / tail(Param, 1) / TimeStep * 
+      InputsModel$Q_upstr %*% (InputsModel$L_hyd[1,] * InputsModel$S_basin[1:length(InputsModel$L_hyd)])
+  } else {
+    Outputs_down <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param)
+  }
+  return(Outputs_down)
 }
-- 
GitLab