UpdateQsimUpstream.R 1.08 KB
Newer Older
#' Update InputsModel$Qupstream with simulated upstream flows provided by GriwrmOutputsModels object.
Dorchies David's avatar
Dorchies David committed
#'
#' @param InputsModel \emph{GriwrmInputsModel} object. See \code{[CreateInputsModel.Griwrm]}.
#' @param OutputsModel \emph{GriwrmOutputsModel} object provided by \code{[RunModel.GriwrmInputsModel]}.
Dorchies David's avatar
Dorchies David committed
#'
#' @description This function is used by \code{\link{RunModel.GriwrmInputsModel}} and \code{\link{Calibration.GriwrmInputsModel}} in order to provide upstream simulated flows to a node.
#'
#' @return InputsModel object with updated QobsUpsr
#'
UpdateQsimUpstream <- function(InputsModel, OutputsModel) {
Dorchies David's avatar
Dorchies David committed
  if(length(InputsModel$UpstreamNodes) > 0) {
    for(i in 1:length(InputsModel$UpstreamNodes)) {
      Qupstream1 <- matrix(
Dorchies David's avatar
Dorchies David committed
        c(
          rep(0, length(RunOptions[[InputsModel$id]]$IndPeriod_WarmUp)),
          OutputsModel[[InputsModel$UpstreamNodes[i]]]$Qsim
Dorchies David's avatar
Dorchies David committed
        ), ncol = 1
      )
      if(i == 1) {
        InputsModel$Qupstream <- Qupstream1
Dorchies David's avatar
Dorchies David committed
      } else {
        InputsModel$Qupstream <- cbind(InputsModel$Qupstream, Qupstream1)
Dorchies David's avatar
Dorchies David committed
      }
    }
  }
  return(InputsModel)
}