diff --git a/DESCRIPTION b/DESCRIPTION
index 1dcba7eb967a1ada417ecd46a684ec7ea218d644..8ca16abad8a6e8efaccf74e59ded0783bccd23be 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,8 +1,8 @@
 Package: airGR
 Type: Package
 Title: Suite of GR Hydrological Models for Precipitation-Runoff Modelling
-Version: 1.6.1.6
-Date: 2020-04-05
+Version: 1.6.1.7
+Date: 2020-04-07
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")),
   person("Olivier", "Delaigue", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7668-8468"), email = "airGR@inrae.fr"),
diff --git a/NEWS.md b/NEWS.md
index 8840495c0dd8a5a6728f8ef287519b68a6e8851f..768a8f862ab469f432a2a7f80e29660ed39e14a3 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -2,7 +2,7 @@
 
 
 
-### 1.6.1.6 Release Notes (2020-04-05)
+### 1.6.1.7 Release Notes (2020-04-07)
 
 #### New features
 
diff --git a/R/RunModel.R b/R/RunModel.R
index dc135b289364c8e0fb32e4ca18adc71f350b5e1f..0e88dd4ca4205d807463bc0dbe3933febbe6f479 100644
--- a/R/RunModel.R
+++ b/R/RunModel.R
@@ -2,7 +2,7 @@ RunModel <- function (InputsModel, RunOptions, Param, FUN_MOD) {
   FUN_MOD <- match.fun(FUN_MOD)
   if (inherits(InputsModel, "SD")) {
     OutputsModelDown <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, 
-                            Param = Param[-length(Param)])
+                                Param = Param[-length(Param)])
     OutputsModelDown$QsimDown <- OutputsModelDown$Qsim
     if (inherits(InputsModel, "daily")) {
       TimeStep <- 60 * 60 * 24
@@ -10,12 +10,18 @@ RunModel <- function (InputsModel, RunOptions, Param, FUN_MOD) {
     if (inherits(InputsModel, "hourly")) {
       TimeStep <- 60 * 60
     }
-    AreaTot <- sum(InputsModel$BasinAreas)
+    AreaTot <- sum(InputsModel$BasinAreas) # total area 
+    # propagation time from upstream meshes to outlet
+    PT <- InputsModel$LengthHydro[1, ] * 1000 / Param[length(Param)] / TimeStep
+    HUTRANS <- rbind(1 - (PT - floor(PT)), PT - floor(PT))
+    
     OutputsModelDown$Qsim <- OutputsModelDown$QsimDown * InputsModel$BasinAreas[length(InputsModel$BasinAreas)] / AreaTot +
-      1000 / Param[length(Param)] / TimeStep * 
-      InputsModel$QobsUpstr %*% (InputsModel$LengthHydro[1, ] * InputsModel$BasinAreas[1:length(InputsModel$LengthHydro)])
+      InputsModel$QobsUpstr[(1 + floor(PT)) : length(OutputsModelDown$QsimDown), ] %*% HUTRANS[1, ] * 
+      InputsModel$BasinAreas[1:length(InputsModel$LengthHydro)] / AreaTot + 
+      InputsModel$QobsUpstr[(2 + floor(PT)) : length(OutputsModelDown$QsimDown), ] %*% HUTRANS[2, ] * 
+      InputsModel$BasinAreas[1:length(InputsModel$LengthHydro)] / AreaTot
   } else {
     OutputsModelDown <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param)
   }
   return(OutputsModelDown)
-}
+}
\ No newline at end of file