From d7ee553c3e2919f20b2be15b26c2629986bb17a3 Mon Sep 17 00:00:00 2001
From: unknown <olivier.delaigue@ANPI1430.antony.irstea.priv>
Date: Wed, 5 Apr 2017 18:09:21 +0200
Subject: [PATCH] v1.0.6.15 RunModel* functions now return a warning when X4 <
 0.5 and set it to 0.5

---
 DESCRIPTION                | 2 +-
 R/RunModel_CemaNeigeGR4J.R | 5 +++++
 R/RunModel_CemaNeigeGR5J.R | 5 +++++
 R/RunModel_CemaNeigeGR6J.R | 5 +++++
 R/RunModel_GR4H.R          | 5 +++++
 R/RunModel_GR4J.R          | 5 +++++
 R/RunModel_GR5J.R          | 5 +++++
 R/RunModel_GR6J.R          | 5 +++++
 8 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index a8c336c0..bb5a0380 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: airGR
 Type: Package
 Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling
-Version: 1.0.6.14
+Version: 1.0.6.15
 Date: 2017-04-05
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl")),
diff --git a/R/RunModel_CemaNeigeGR4J.R b/R/RunModel_CemaNeigeGR4J.R
index d07d98ed..380225ac 100644
--- a/R/RunModel_CemaNeigeGR4J.R
+++ b/R/RunModel_CemaNeigeGR4J.R
@@ -17,6 +17,7 @@ RunModel_CemaNeigeGR4J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
 
       Param_X1X3_threshold <- 1e-2
+      Param_X4_threshold   <- 0.5
       if (Param[1L] < Param_X1X3_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[1L] <- Param_X1X3_threshold
@@ -25,6 +26,10 @@ RunModel_CemaNeigeGR4J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[3L] <- Param_X1X3_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }      
       
     ##Input_data_preparation
       if(identical(RunOptions$IndPeriod_WarmUp,as.integer(0))){ RunOptions$IndPeriod_WarmUp <- NULL; }
diff --git a/R/RunModel_CemaNeigeGR5J.R b/R/RunModel_CemaNeigeGR5J.R
index 2661e01e..4a7ea912 100644
--- a/R/RunModel_CemaNeigeGR5J.R
+++ b/R/RunModel_CemaNeigeGR5J.R
@@ -17,6 +17,7 @@ RunModel_CemaNeigeGR5J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3_threshold <- 1e-2
+      Param_X4_threshold   <- 0.5
       if (Param[1L] < Param_X1X3_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[1L] <- Param_X1X3_threshold
@@ -25,6 +26,10 @@ RunModel_CemaNeigeGR5J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[3L] <- Param_X1X3_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }      
 
     ##Input_data_preparation
       if(identical(RunOptions$IndPeriod_WarmUp,as.integer(0))){ RunOptions$IndPeriod_WarmUp <- NULL; }
diff --git a/R/RunModel_CemaNeigeGR6J.R b/R/RunModel_CemaNeigeGR6J.R
index cd0b7958..c4926c65 100644
--- a/R/RunModel_CemaNeigeGR6J.R
+++ b/R/RunModel_CemaNeigeGR6J.R
@@ -17,6 +17,7 @@ RunModel_CemaNeigeGR6J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3X6_threshold <- 1e-2
+      Param_X4_threshold     <- 0.5
       if (Param[1L] < Param_X1X3X6_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[1L] <- Param_X1X3X6_threshold
@@ -25,6 +26,10 @@ RunModel_CemaNeigeGR6J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[3L] <- Param_X1X3X6_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }      
       if (Param[6L] < Param_X1X3X6_threshold) {
         warning(sprintf("Param[6] (X6: coefficient for emptying exponential store [mm]) < %.2f\n X6 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[6L] <- Param_X1X3X6_threshold
diff --git a/R/RunModel_GR4H.R b/R/RunModel_GR4H.R
index 76e57132..c914468f 100644
--- a/R/RunModel_GR4H.R
+++ b/R/RunModel_GR4H.R
@@ -14,6 +14,7 @@ RunModel_GR4H <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3_threshold <- 1e-2
+      Param_X4_threshold     <- 0.5
       if (Param[1L] < Param_X1X3_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[1L] <- Param_X1X3_threshold
@@ -22,6 +23,10 @@ RunModel_GR4H <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[3L] <- Param_X1X3_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [h]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }     
 
     ##Input_data_preparation
       if(identical(RunOptions$IndPeriod_WarmUp,as.integer(0))){ RunOptions$IndPeriod_WarmUp <- NULL; }
diff --git a/R/RunModel_GR4J.R b/R/RunModel_GR4J.R
index b871d24a..24110687 100644
--- a/R/RunModel_GR4J.R
+++ b/R/RunModel_GR4J.R
@@ -14,6 +14,7 @@ RunModel_GR4J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3_threshold <- 1e-2
+      Param_X4_threshold   <- 0.5
       if (Param[1L] < Param_X1X3_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[1L] <- Param_X1X3_threshold
@@ -22,6 +23,10 @@ RunModel_GR4J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[3L] <- Param_X1X3_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }
 
     ##Input_data_preparation
       if(identical(RunOptions$IndPeriod_WarmUp,as.integer(0))){ RunOptions$IndPeriod_WarmUp <- NULL; }
diff --git a/R/RunModel_GR5J.R b/R/RunModel_GR5J.R
index 729e6108..3dc9c463 100644
--- a/R/RunModel_GR5J.R
+++ b/R/RunModel_GR5J.R
@@ -14,6 +14,7 @@ RunModel_GR5J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3_threshold <- 1e-2
+      Param_X4_threshold   <- 0.5
       if (Param[1L] < Param_X1X3_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[1L] <- Param_X1X3_threshold
@@ -22,6 +23,10 @@ RunModel_GR5J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3_threshold, Param_X1X3_threshold))
         Param[3L] <- Param_X1X3_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }      
       
     ##Input_data_preparation
       if(identical(RunOptions$IndPeriod_WarmUp,as.integer(0))){ RunOptions$IndPeriod_WarmUp <- NULL; }
diff --git a/R/RunModel_GR6J.R b/R/RunModel_GR6J.R
index 23e234da..9aa0e1b3 100644
--- a/R/RunModel_GR6J.R
+++ b/R/RunModel_GR6J.R
@@ -14,6 +14,7 @@ RunModel_GR6J <- function(InputsModel,RunOptions,Param){
       Param <- as.double(Param);
       
       Param_X1X3X6_threshold <- 1e-2
+      Param_X4_threshold     <- 0.5
       if (Param[1L] < Param_X1X3X6_threshold) {
         warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n X1 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[1L] <- Param_X1X3X6_threshold
@@ -22,6 +23,10 @@ RunModel_GR6J <- function(InputsModel,RunOptions,Param){
         warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n X3 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[3L] <- Param_X1X3X6_threshold
       }
+      if (Param[4L] < Param_X4_threshold) {
+        warning(sprintf("Param[4] (X4: unit hydrograph time constant [d]) < %.2f\n X4 set to %.2f", Param_X4_threshold, Param_X4_threshold))
+        Param[4L] <- Param_X4_threshold
+      }
       if (Param[6L] < Param_X1X3X6_threshold) {
         warning(sprintf("Param[6] (X6: coefficient for emptying exponential store [mm]) < %.2f\n X6 set to %.2f", Param_X1X3X6_threshold, Param_X1X3X6_threshold))
         Param[6L] <- Param_X1X3X6_threshold
-- 
GitLab