From 4753c79ff6707eddfa229284a07d495302a3f1e9 Mon Sep 17 00:00:00 2001
From: David <david.dorchies@inrae.fr>
Date: Tue, 11 Feb 2025 12:19:15 +0100
Subject: [PATCH] fix(CreateCalibOptions): allow full fixed set of parameters

Refs #183
---
 R/CreateCalibOptions.R | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R
index a28f4c7..d002531 100644
--- a/R/CreateCalibOptions.R
+++ b/R/CreateCalibOptions.R
@@ -50,13 +50,23 @@ CreateCalibOptions.InputsModel <- function(x, FixedParam = NULL, ...) {
     }
   }
   # Add FixedParam
-  dots$FixedParam <- FixedParam
+  if (!is.null(FixedParam) && !any(is.na(FixedParam))) {
+    dots$FixedParam <- NULL
+  } else {
+    dots$FixedParam <- FixedParam
+  }
   # Automatically define IsSD for intermediate basin GR models
   dots$IsSD = !is.null(x$Qupstream) & dots$FUN_MOD != "RunModel_Lag"
   # Add IsHyst in parameters if carried by InputsModel
   if (!is.null(x$model$IsHyst)) dots$IsHyst <- x$model$IsHyst
   # Call airGR function
-  do.call(airGR::CreateCalibOptions, dots)
+  CalibOptions <- do.call(airGR::CreateCalibOptions, dots)
+  # airGR::CreateCalibOptions don't like when there are no param to calibrate
+  # But we need the full set of fixed parameters here for airGRiwrm Calibration
+  if (!is.null(FixedParam) && !any(is.na(FixedParam))) {
+    CalibOptions$FixedParam <- FixedParam
+  }
+  return(CalibOptions)
 }
 
 #' @rdname CreateCalibOptions
-- 
GitLab