diff --git a/R/RunModel.Supervisor.R b/R/RunModel.Supervisor.R index f266ef0118d5d5b90347f7e9d5f06712acea07d9..937dc40ea1f76bb9173aeea48ac04d8f43ea5501 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 dab02557ee3c2b890bd3f372550f6fb6c3380853..85fc697e8b8a8d0e337aca4f599e6aa637a82eb5 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 + } }) }