From ad63d07c985b447b8e45473f42a9aa3ba04894f1 Mon Sep 17 00:00:00 2001 From: Delaigue Olivier <olivier.delaigue@irstea.fr> Date: Wed, 14 Oct 2020 13:16:35 +0200 Subject: [PATCH] 1.6.3.4 style(RunModel_LAG): minor typo and code revisions Refs #34 --- DESCRIPTION | 4 ++-- NEWS.md | 2 +- R/RunModel_LAG.R | 37 +++++++++++++++++++++++-------------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index c22d7738..590717fa 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: airGR Type: Package Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling -Version: 1.6.3.3 -Date: 2020-10-06 +Version: 1.6.3.4 +Date: 2020-10-14 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")), person("Olivier", "Delaigue", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7668-8468"), email = "airGR@inrae.fr"), diff --git a/NEWS.md b/NEWS.md index d112a86e..ee4bd1c0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,6 @@ ## Release History of the airGR Package -### 1.6.3.3 Release Notes (2020-10-06) +### 1.6.3.4 Release Notes (2020-10-14) #### New features diff --git a/R/RunModel_LAG.R b/R/RunModel_LAG.R index 20d858fd..2a84d411 100644 --- a/R/RunModel_LAG.R +++ b/R/RunModel_LAG.R @@ -1,27 +1,36 @@ -RunModel_LAG <- function(InputsModel,RunOptions,Param) { +RunModel_LAG <- function(InputsModel, RunOptions, Param) { NParam <- 1 ##Arguments_check - if(inherits(InputsModel,"InputsModel")==FALSE){ stop("'InputsModel' must be of class 'InputsModel'") } - if(inherits(InputsModel,"SD" )==FALSE){ stop("'InputsModel' must be of class 'SD'") } - if(inherits(RunOptions,"RunOptions" )==FALSE){ stop("'RunOptions' must be of class 'RunOptions'") } - if(!is.vector(Param) | !is.numeric(Param)){ stop("'Param' must be a numeric vector") } - if(sum(!is.na(Param))!=NParam){ stop(paste("'Param' must be a vector of length",NParam,"and contain no NA")) } - - if(is.null(InputsModel$OutputsModel)) { + if (!inherits(InputsModel, "InputsModel")) { + stop("'InputsModel' must be of class 'InputsModel'") + } + if (!inherits(InputsModel, "SD")) { + stop("'InputsModel' must be of class 'SD'") + } + if (!inherits(RunOptions, "RunOptions")) { + stop("'RunOptions' must be of class 'RunOptions'") + } + if (!is.vector(Param) | !is.numeric(Param)) { + stop("'Param' must be a numeric vector") + } + if (sum(!is.na(Param)) != NParam) { + stop(paste("'Param' must be a vector of length", NParam, "and contain no NA")) + } + if (is.null(InputsModel$OutputsModel)) { stop("'InputsModel' should contain an 'OutputsModel' key containing the output of the runoff of the downstream subcatchment") } - if(is.null(InputsModel$OutputsModel$Qsim)) { + if (is.null(InputsModel$OutputsModel$Qsim)) { stop("'InputsModel$OutputsModel' should contain a key 'Qsim' containing the output of the runoff of the downstream subcatchment") } - if(sum(!is.na(InputsModel$OutputsModel$Qsim)) != length(RunOptions$IndPeriod_Run)) { + if (sum(!is.na(InputsModel$OutputsModel$Qsim)) != length(RunOptions$IndPeriod_Run)) { stop("'InputsModel$OutputsModel$Qim' should have the same lenght as 'RunOptions$IndPeriod_Run' and contain no NA") } OutputsModel <- InputsModel$OutputsModel OutputsModel$QsimDown <- OutputsModel$Qsim - + if (inherits(InputsModel, "daily")) { TimeStep <- 60 * 60 * 24 } @@ -30,7 +39,7 @@ RunModel_LAG <- function(InputsModel,RunOptions,Param) { } # propagation time from upstream meshes to outlet - PT <- InputsModel$LengthHydro / Param[1] / TimeStep + PT <- InputsModel$LengthHydro / Param[1L] / TimeStep HUTRANS <- rbind(1 - (PT - floor(PT)), PT - floor(PT)) NbUpBasins <- length(InputsModel$LengthHydro) @@ -39,7 +48,7 @@ RunModel_LAG <- function(InputsModel,RunOptions,Param) { for (upstream_basin in seq_len(NbUpBasins)) { Qupstream <- InputsModel$Qupstream[RunOptions$IndPeriod_Run, upstream_basin] - if(!is.na(InputsModel$BasinAreas[upstream_basin])) { + if (!is.na(InputsModel$BasinAreas[upstream_basin])) { # Upstream flow with area needs to be converted to m3 by time step Qupstream <- Qupstream * InputsModel$BasinAreas[upstream_basin] * 1E3 } @@ -52,7 +61,7 @@ RunModel_LAG <- function(InputsModel,RunOptions,Param) { HUTRANS[2, upstream_basin] } # Warning for negative flows - if(any(OutputsModel$Qsim < 0)) { + if (any(OutputsModel$Qsim < 0)) { warning(length(which(OutputsModel$Qsim < 0)), " time steps with negative flow, set to zero.") OutputsModel$Qsim[OutputsModel$Qsim < 0] <- 0 } -- GitLab