diff --git a/R/RunModel.Supervisor.R b/R/RunModel.Supervisor.R index 41b2dc1c0fa5588991dcb9a3c10ab853cc7a339a..d6b20474312aa148cae6f8e64e17c3cbf3bee9e1 100644 --- a/R/RunModel.Supervisor.R +++ b/R/RunModel.Supervisor.R @@ -65,7 +65,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) { ) # Adapt RunOptions to step by step simulation and copy states - SD_Ids <- getSD_Ids(x$InputsModel) + SD_Ids <- getSD_Ids(x$InputsModel, add_diversions = TRUE) names(SD_Ids) <- SD_Ids for(id in SD_Ids) { RunOptions[[id]]$IndPeriod_WarmUp <- 0L @@ -102,7 +102,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) { doSupervision(x) } # Loop over sub-basin using SD model - for(id in getSD_Ids(x$InputsModel, add_diversion = TRUE)) { + for(id in SD_Ids) { # Run model for the sub-basin and one time step RunOptions[[id]]$IniStates <- serializeIniStates(x$OutputsModel[[id]]$StateEnd) RunOptions[[id]]$IndPeriod_Run <- iTS @@ -136,7 +136,7 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) { message(" 100%") - for(id in getSD_Ids(x$InputsModel)) { + for(id in SD_Ids) { x$OutputsModel[[id]]$DatesR <- x$DatesR[IndPeriod_Run] for (outputVar in outputVars[[id]]) { x$OutputsModel[[id]][[outputVar]] <- x$storedOutputs[[outputVar]][, id] diff --git a/R/utils.GRiwrm.R b/R/utils.GRiwrm.R index b0dd87001de5bde145b7c3ed694a0e0accb9b39c..d7395253a8a5d55c6e5708fef9922308c0457cec 100644 --- a/R/utils.GRiwrm.R +++ b/R/utils.GRiwrm.R @@ -1,16 +1,16 @@ #' Function to obtain the ID of sub-basins using SD model #' #' @param InputsModel \[`GRiwrmInputsModel` object\] -#' @param add_diversion [logical] for adding upstream nodes with diversion +#' @param add_diversions [logical] for adding upstream nodes with diversion #' #' @return [character] IDs of the sub-basins using SD model #' @export -getSD_Ids <- function(InputsModel, add_diversion = FALSE) { +getSD_Ids <- function(InputsModel, add_diversions = FALSE) { if (!inherits(InputsModel, "GRiwrmInputsModel")) { stop("Argument `InputsModel` should be of class GRiwrmInputsModel") } bSDs <- sapply(InputsModel, function (IM) { - inherits(IM, "SD") | IM$hasDiversion + inherits(IM, "SD") || (add_diversions & IM$hasDiversion) }) names(InputsModel)[bSDs] } diff --git a/man/getSD_Ids.Rd b/man/getSD_Ids.Rd index 3c6523663daea8a0bed68269ef91806e47aedd8c..307625a611b5b9d4ebbf40b9422ad5c8502a2648 100644 --- a/man/getSD_Ids.Rd +++ b/man/getSD_Ids.Rd @@ -4,12 +4,12 @@ \alias{getSD_Ids} \title{Function to obtain the ID of sub-basins using SD model} \usage{ -getSD_Ids(InputsModel, add_diversion = FALSE) +getSD_Ids(InputsModel, add_diversions = FALSE) } \arguments{ \item{InputsModel}{[\code{GRiwrmInputsModel} object]} -\item{add_diversion}{\link{logical} for adding upstream nodes with diversion} +\item{add_diversions}{\link{logical} for adding upstream nodes with diversion} } \value{ \link{character} IDs of the sub-basins using SD model