diff --git a/DESCRIPTION b/DESCRIPTION
index a8c336c0288708702f4e824705c257c12e311a2e..bb5a03802c202d51e2655e37c69bc8d5346117d7 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 d07d98ed92a93b8d39e186a82cf515f98e82b063..380225ac050eaae5a91b15991cbeaeff2ca79fe0 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 2661e01e110ec1034e51e27b8e3830cda1fa97b8..4a7ea9123e9cf7eab6cd5aa507fcf94d266000b5 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 cd0b79584f43feaf19ef4905ccd9b6f662dc1871..c4926c650e34e6297923153c140938a3af5b420a 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 76e5713246819efddba31ead005f3e75dd939db2..c914468ff9cb1b0445523c6ec0ee0be68ec4ea8b 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 b871d24a7c62bf1fcb86a76cdcfcfb2e712ed4b8..24110687ee1651277680403ccb725de3f911af0f 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 729e610852dd0b8183f1f4607c7d377f6911a6a3..3dc9c4630c15d6770da193c127da201d4ffb0d54 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 23e234da7a310c474977517b9d55fbd1231b9fe0..9aa0e1b3b1a847b39686dc9aaa711e0ffe9bb676 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