From 52bb65235f93be53b1a12a8e54fa4a825724bcc4 Mon Sep 17 00:00:00 2001
From: David <david.dorchies@inrae.fr>
Date: Fri, 29 Nov 2024 07:11:41 +0100
Subject: [PATCH] fix(RunModel.GRiwrmOutputsModel): check issues

- NAs in IniStates
- Documentation warning
---
 R/RunModel.GRiwrmOutputsModel.R | 3 ++-
 R/RunModel.InputsModel.R        | 3 +++
 R/utils.RunModel.R              | 3 +--
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/R/RunModel.GRiwrmOutputsModel.R b/R/RunModel.GRiwrmOutputsModel.R
index 7b1f82b..c24a5c4 100644
--- a/R/RunModel.GRiwrmOutputsModel.R
+++ b/R/RunModel.GRiwrmOutputsModel.R
@@ -41,7 +41,8 @@ RunModel.GRiwrmOutputsModel <- function(OutputsModel,
                                         DatesR = getNextTimeSteps(OutputsModel),
                                         Qinf = NULL,
                                         Qrelease = NULL,
-                                        Qmin = NULL) {
+                                        Qmin = NULL,
+                                        ...) {
   stopifnot(inherits(OutputsModel, "GRiwrmOutputsModel"),
             inherits(InputsModel, "GRiwrmInputsModel"),
             inherits(RunOptions, "GRiwrmRunOptions"))
diff --git a/R/RunModel.InputsModel.R b/R/RunModel.InputsModel.R
index 424f73a..0693e44 100644
--- a/R/RunModel.InputsModel.R
+++ b/R/RunModel.InputsModel.R
@@ -43,6 +43,9 @@ RunModel.InputsModel <- function(x = NULL,
     }
   }
 
+  # Avoiding Error in `FUN_MOD(x, RunOptions, Param)`: NA/NaN/Inf in foreign function call (arg 7)
+  RunOptions$IniStates[is.na(RunOptions$IniStates)] <- 0
+
   FUN_MOD <- match.fun(FUN_MOD)
   if (identical(FUN_MOD, RunModel_Lag)) {
     OutputsModel <- RunModel_Routing(x, RunOptions, Param)
diff --git a/R/utils.RunModel.R b/R/utils.RunModel.R
index be5ad93..e5aefac 100644
--- a/R/utils.RunModel.R
+++ b/R/utils.RunModel.R
@@ -62,7 +62,6 @@ OutputsModelQsim <- function(InputsModel, OutputsModel, IndPeriod_Run) {
 #'
 serializeIniStates <- function(IniStates) {
   IniStates <- unlist(IniStates)
-  IniStates[is.na(IniStates)] <- 0
   return(IniStates)
 }
 
@@ -109,4 +108,4 @@ getNextTimeSteps <- function(OutputsModel, TimeStep = 1L) {
   last_date <- dplyr::last(OutputsModel[[1]]$DatesR)
   first_date <- last_date + attr(OutputsModel, "TimeStep")
   return(seq(first_date, length.out = TimeStep, by = attr(OutputsModel, "TimeStep")))
- }
+}
-- 
GitLab