diff --git a/R/RunModel.InputsModel.R b/R/RunModel.InputsModel.R index 538c18cc9adee81e9797d0dc172c5637359409c1..952ae003220162752e3de8d2b154e9b190963c8f 100644 --- a/R/RunModel.InputsModel.R +++ b/R/RunModel.InputsModel.R @@ -161,10 +161,10 @@ calcOverAbstraction <- function(O, WarmUp) { f <- lapply(f, function(x) paste0("WarmUp", x)) } if (!is.null(O[[f$sim]])) { - if (any(O[[f$sim]] < 0)) { + if (any(!is.na(O[[f$sim]]) & O[[f$sim]] < 0)) { O[[f$over]] <- rep(0, length(O[[f$sim]])) - O[[f$over]][O[[f$sim]] < 0] <- - O[[f$sim]][O[[f$sim]] < 0] - O[[f$sim]][O[[f$sim]] < 0] <- 0 + O[[f$over]][O[[f$sim]] < 0] <- - O[[f$sim]][!is.na(O[[f$sim]]) & O[[f$sim]] < 0] + O[[f$sim]][!is.na(O[[f$sim]]) & O[[f$sim]] < 0] <- 0 } } return(O) diff --git a/man/RunModel.InputsModel.Rd b/man/RunModel.InputsModel.Rd index f4afb51d13e983abdda889f92d4c8cc84e922118..32bec4a7217d8aab658e945021367073d58bd182 100644 --- a/man/RunModel.InputsModel.Rd +++ b/man/RunModel.InputsModel.Rd @@ -35,6 +35,8 @@ is here completed by: \itemize{ \item an item \verb{$Qsim_m3} storing the simulated discharge series in m3/s \item an item \verb{$Qover_m3} storing the volumes of over abstraction which occurs -when \code{RunModel_Lag} warns for negative simulated flows. +when \code{RunModel_Lag} warns for negative simulated flows. The latter reflects the volume +that was planned to be drawn from the sub-basin but could not be drawn because +of the lack of water. } } diff --git a/tests/testthat/test-RunModel.R b/tests/testthat/test-RunModel.R index ba5055ede2aefc5dc6104139611bd3adbd5e2840..a4b24cc1e5cce64dba7d8248a6fe7cb4e24a23c2 100644 --- a/tests/testthat/test-RunModel.R +++ b/tests/testthat/test-RunModel.R @@ -257,7 +257,7 @@ test_that("RunModel should return water deficit (Qover_m3)", { ) g <- CreateGRiwrm(nodes) Qobs2 <- data.frame(P = rep(-2E6, length(DatesR))) - e <- setupRunModel(griwrm = g, runRunModel = TRUE, Qobs2 = Qobs2) + expect_warning(e <- setupRunModel(griwrm = g, runRunModel = TRUE, Qobs2 = Qobs2)) for(x in ls(e)) assign(x, get(x, e)) expect_false(any(OM_GriwrmInputs$`54001`$Qsim_m3 < 0)) expect_true(all(OM_GriwrmInputs$`54001`$Qover_m3 >= 0))