From b3a15c7002c0acc4d4dbd1a8070245b3cd4c9ba9 Mon Sep 17 00:00:00 2001 From: Dorchies David <david.dorchies@inrae.fr> Date: Mon, 25 Jul 2022 11:14:32 +0200 Subject: [PATCH] fix(RunModel.Supervisor): issues with in-line reservoir inside the network Fix #51 --- R/RunModel.Supervisor.R | 6 ++++-- R/utils.R | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/R/RunModel.Supervisor.R b/R/RunModel.Supervisor.R index f266ef0..937dc40 100644 --- a/R/RunModel.Supervisor.R +++ b/R/RunModel.Supervisor.R @@ -36,8 +36,10 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) { # Copy simulated pure runoff flows (no SD nodes) to Qupstream in downstream SD nodes for(id in getNoSD_Ids(x$InputsModel)) { downId <- x$InputsModel[[id]]$down - x$InputsModel[[downId]]$Qupstream[RunOptions[[downId]]$IndPeriod_Run, id] <- - x$OutputsModel[[id]]$Qsim_m3 + if(!is.null(x$InputsModel[[downId]])) { + x$InputsModel[[downId]]$Qupstream[RunOptions[[downId]]$IndPeriod_Run, id] <- + x$OutputsModel[[id]]$Qsim_m3 + } } # Save Qsim for step by step simulation diff --git a/R/utils.R b/R/utils.R index dab0255..85fc697 100644 --- a/R/utils.R +++ b/R/utils.R @@ -68,7 +68,10 @@ setDataToLocation <- function(ctrlr, sv) { # limit U size to the number of simulation time steps of the current supervision time step U <- ctrlr$U[seq.int(length(sv$ts.index)),i] # ! Qupstream contains warm up period and run period => the index is shifted - sv$InputsModel[[node]]$Qupstream[sv$ts.index0 + sv$ts.index, ctrlr$Unames[i]] <- U + if(!is.null(sv$InputsModel[[node]])) { + sv$InputsModel[[node]]$Qupstream[sv$ts.index0 + sv$ts.index, + ctrlr$Unames[i]] <- U + } }) } -- GitLab