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