From 7c9db918a964071182b693db234af2e2c7383a2b Mon Sep 17 00:00:00 2001
From: David <david.dorchies@inrae.fr>
Date: Tue, 2 Apr 2024 18:00:54 +0200
Subject: [PATCH] fix(RunModel.Supervisor): issue with Reservoir

Refs #144
---
 R/RunModel.SD.R         | 8 ++++----
 R/RunModel.Supervisor.R | 3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/R/RunModel.SD.R b/R/RunModel.SD.R
index 05bd21f..928d1ef 100644
--- a/R/RunModel.SD.R
+++ b/R/RunModel.SD.R
@@ -10,11 +10,12 @@
 RunModel.SD <- function(x, RunOptions, Param, QcontribDown = NULL, ...) {
   if (is.null(QcontribDown)) {
     QcontribDown <- list(
-      RunOptions = list(
-        WarmUpQsim = rep(0, length(RunOptions$IndPeriod_WarmUp))
-      ),
       Qsim = rep(0, length(RunOptions$IndPeriod_Run))
     )
+    if (!is.null(RunOptions$IndPeriod_WarmUp) &&
+        !(length(RunOptions$IndPeriod_WarmUp) == 1 && RunOptions$IndPeriod_WarmUp == 0L)) {
+      QcontribDown$RunOptions = list(WarmUpQsim = rep(0, length(RunOptions$IndPeriod_WarmUp)))
+    }
     class(QcontribDown) <- c("OutputsModel", class(RunOptions)[-1])
     x$BasinAreas[length(x$BasinAreas)] <- 1E-6
   }
@@ -22,7 +23,6 @@ RunModel.SD <- function(x, RunOptions, Param, QcontribDown = NULL, ...) {
                                       RunOptions = RunOptions,
                                       Param = Param[1],
                                       QcontribDown = QcontribDown)
-  OutputsModel$DatesR <- x$DatesR[RunOptions$IndPeriod_Run]
   if ("WarmUpQsim" %in% RunOptions$Outputs_Sim) {
     OutputsModel$RunOptions$WarmUpQsim_m3 <-
       OutputsModel$RunOptions$WarmUpQsim * sum(x$BasinAreas, na.rm = TRUE) * 1e3
diff --git a/R/RunModel.Supervisor.R b/R/RunModel.Supervisor.R
index 7479a10..1c67d69 100644
--- a/R/RunModel.Supervisor.R
+++ b/R/RunModel.Supervisor.R
@@ -54,6 +54,9 @@ RunModel.Supervisor <- function(x, RunOptions, Param, ...) {
     RunOptionsWarmUp[[id]]$IndPeriod_Run <- RunOptionsWarmUp[[id]]$IndPeriod_WarmUp
     RunOptionsWarmUp[[id]]$IndPeriod_WarmUp <- 0L
     RunOptionsWarmUp[[id]]$Outputs_Sim <- c("StateEnd", "Qsim")
+    if (x$InputsModel[[id]]$isReservoir) {
+      RunOptionsWarmUp[[id]]$Outputs_Sim <- c(RunOptionsWarmUp[[id]]$Outputs_Sim, "Qsim_m3")
+    }
   }
   OM_WarmUp <- suppressMessages(
     RunModel.GRiwrmInputsModel(x$InputsModel,
-- 
GitLab