Commit 9eab0a15 authored by Dorchies David's avatar Dorchies David
Browse files

refactor(RunModel_LRQ): Use non simplified formula of with tanh from Bentura & Michel (1997)

Refs HYCAR-Hydro/airgr#152, HYCAR-Hydro/airgr#153
parent 5da5ccf0
No related merge requests found
Showing with 9 additions and 5 deletions
+9 -5
...@@ -65,10 +65,10 @@ RunModel_LRQ <- function(InputsModel, RunOptions, Param, QcontribDown) { ...@@ -65,10 +65,10 @@ RunModel_LRQ <- function(InputsModel, RunOptions, Param, QcontribDown) {
## Parameters set up ## Parameters set up
TParam <- Param[1L] CParam <- Param[1L] # CParam in m/s
KParam <- Param[2L] # KParam en mm/pdt KParam <- Param[2L] # KParam in mm/TS
PT <- InputsModel$LengthHydro * 1e3 / TParam / RunOptions$FeatFUN_MOD$TimeStep PT <- InputsModel$LengthHydro * 1e3 / CParam / RunOptions$FeatFUN_MOD$TimeStep #PT in h
PK <- sqrt(KParam * InputsModel$BasinAreas[-length(InputsModel$BasinAreas)] * 1e-3) * PT #m3/2 pdt1/2 PK <- sqrt(KParam * InputsModel$BasinAreas[-length(InputsModel$BasinAreas)] * 1e-3) * PT #m3/2 pdt1/2
## Lag set up ## Lag set up
...@@ -119,14 +119,18 @@ RunModel_LRQ <- function(InputsModel, RunOptions, Param, QcontribDown) { ...@@ -119,14 +119,18 @@ RunModel_LRQ <- function(InputsModel, RunOptions, Param, QcontribDown) {
QsimDown_input <- matrix(QsimDown * QsimDown_input <- matrix(QsimDown *
InputsModel$BasinAreas[length(InputsModel$BasinAreas)] * 1e3, ncol = 1) InputsModel$BasinAreas[length(InputsModel$BasinAreas)] * 1e3, ncol = 1)
for (upstream_basin in seq_len(NbUpBasins)) { for (upstream_basin in seq_len(NbUpBasins)) {
Qupstream_m3 <- c(IniStates[[upstream_basin]], Qupstream_m3 <- c(IniStates[[upstream_basin]],
InputsModel$Qupstream[IndPeriod1, upstream_basin]) InputsModel$Qupstream[IndPeriod1, upstream_basin])
Qroute <- Qupstream_m3 Qroute <- Qupstream_m3
for (q in seq_along(Qroute)[1:(length(Qroute) - 1)]){ for (q in seq_along(Qroute)[1:(length(Qroute) - 1)]){
Qroute[q + 1] <- ((Qroute[q]^0.5 + (((Qupstream_m3[q] + Qupstream_m3[q + 1])/2)/PK[upstream_basin])) / Qroute[q + 1] <- ((Qroute[q]^0.5 + ((Qupstream_m3[q] + Qupstream_m3[q + 1])/2)^0.5 *
(1 + ((Qroute[q]^0.5) / PK[upstream_basin])))^2 tanh((((Qupstream_m3[q] + Qupstream_m3[q + 1])/2)^0.5)/PK[upstream_basin]) ) /
(1 + (Qroute[q]/((Qupstream_m3[q] + Qupstream_m3[q + 1])/2))^0.5 *
tanh((((Qupstream_m3[q] + Qupstream_m3[q + 1])/2)^0.5)/PK[upstream_basin])) )^2
} }
Qllr <- Lag(PT[upstream_basin], Qroute, Qupstream_m3)[IndPeriod1] Qllr <- Lag(PT[upstream_basin], Qroute, Qupstream_m3)[IndPeriod1]
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment