diff --git a/DESCRIPTION b/DESCRIPTION index 70c5a65446165f8b6067c3431971aa7982b2e884..33863672b2605bf5d9b0db4960404bc041052b1b 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.9.23 -Date: 2021-01-13 +Version: 1.6.9.27 +Date: 2021-01-18 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/NAMESPACE b/NAMESPACE index bf71216c1b7e82680ccdaf969983b105c814200d..c98743b3f4790e5b9a2ffedef013717415f47f9f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,7 +9,7 @@ useDynLib(airGR, .registration = TRUE) ## S3 methods ## ##################################### S3method('[', InputsModel) -S3method('[', OutputsModel) +#S3method('[', OutputsModel) ### to add in version 2.0 S3method(plot, OutputsModel) S3method(SeriesAggreg, data.frame) S3method(SeriesAggreg, list) @@ -37,6 +37,7 @@ export(ErrorCrit_RMSE) export(Imax) export(PE_Oudin) export(PEdaily_Oudin) +export(plot.OutputsModel) ### to remove from version 2.0 export(RunModel) export(RunModel_CemaNeige) export(RunModel_CemaNeigeGR4H) diff --git a/NEWS.md b/NEWS.md index 3e6b6a7470f79b80b0be3af580330bf3edf602b2..bb266368a7502df97bc9525d3f4c593f56be260e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ -### 1.6.9.23 Release Notes (2021-01-13) +### 1.6.9.27 Release Notes (2021-01-18) #### New features @@ -12,7 +12,7 @@ - `PE_Oudin()` now presents a `RunFortran` argument to run the code in Fortran or in R. The Fortran mode is the fastest. ([#62](https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/62)) - Added `RunModel_Lag()` which allows to perform a single run for the Lag model over the test period in order to run semi-distributed GR models. ([#34](https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/34)) - Added the 'sd_model' vignette to explain how to manage the use of semi-distributed GR models. ([#34](https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/34)) -- Added `[` S3 method for `InputsModel` and `OutputsModel` class objects in order to extract subsets of them. ([#67](https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/67)) +- Added `[` S3 method for `InputsModel` class object in order to extract subsets of it. ([#67](https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/67)) #### Deprecated and defunct diff --git a/R/Utils.R b/R/Utils.R index ddbdd449f404170f171d4a07872f27eb6de3fa31..79bc41e55fcf05b9a725b2f22939ca77b8fe3d7a 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -129,7 +129,7 @@ } -## InputsModel +## OutputsModel .ExtractOutputsModel <- function(x, i) { res <- lapply(x, function(x) { @@ -154,16 +154,16 @@ res } -'[.OutputsModel' <- function(x, i) { - if (!inherits(x, "OutputsModel")) { - stop("'x' must be of class 'OutputsModel'") - } - if (is.factor(i)) { - i <- as.character(i) - } - if (is.numeric(i)) { - .ExtractOutputsModel(x, i) - } else { - NextMethod() - } -} +# '[.OutputsModel' <- function(x, i) { +# if (!inherits(x, "OutputsModel")) { +# stop("'x' must be of class 'OutputsModel'") +# } +# if (is.factor(i)) { +# i <- as.character(i) +# } +# if (is.numeric(i)) { +# .ExtractOutputsModel(x, i) +# } else { +# NextMethod() +# } +# } diff --git a/inst/CITATION b/inst/CITATION index 10c418dfbd264fbfbbeff68911e2f67ad7ab075f..866b138224ca79d722cd2cacb4f8e72324f600ed 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -5,37 +5,38 @@ note <- sprintf("R package version %s", version) citHeader("To cite airGR in publications use these two references:") -bibentry(bibtype="Article", - title = "The Suite of Lumped {GR} Hydrological Models in an {R} package", - author = personList(as.person("L. Coron"), as.person("G. Thirel"), as.person("O. Delaigue"), as.person("C. Perrin"), as.person("V. Andréassian")), - journal = "Environmental Modelling and Software", - year = "2017", - pages = {"166-171"}, - volume = {94}, - doi = "10.1016/j.envsoft.2017.05.002", - textVersion = +bibentry(bibtype ="Article", + title = "The Suite of Lumped {GR} Hydrological Models in an {R} package", + author = personList(as.person("L. Coron"), as.person("G. Thirel"), as.person("O. Delaigue"), as.person("C. Perrin"), as.person("V. Andréassian")), + journal = "Environmental Modelling and Software", + year = "2017", + pages = {"166-171"}, + volume = {94}, + doi = "10.1016/j.envsoft.2017.05.002", + textVersion = paste("Coron, L., Thirel, G., Delaigue, O., Perrin, C. and Andréassian, V.", - "(2017).", + "(2017).", "The Suite of Lumped GR Hydrological Models in an R package.", "Environmental Modelling and Software,", - "94, 166-171.", - "DOI: 10.1016/j.envsoft.2017.05.002.", + "94, 166-171,", + "doi: 10.1016/j.envsoft.2017.05.002.", sep = " ") ) -bibentry(bibtype="Manual", - title = "{airGR}: Suite of {GR} Hydrological Models for Precipitation-Runoff Modelling", - author = personList(as.person("L. Coron"), as.person("O. Delaigue"), as.person("G. Thirel"), as.person("C. Perrin"), as.person("C. Michel")), - journal = "R News", - year = year, - note = note, - doi = "10.15454/EX11NA", - url = "https://CRAN.R-project.org/package=airGR", - textVersion = - paste0("Coron, L., Delaigue, O., Thirel, G., Perrin, C. and Michel, C. (", +bibentry(bibtype = "Manual", + title = "{airGR}: Suite of {GR} Hydrological Models for Precipitation-Runoff Modelling", + author = personList(as.person("L. Coron"), as.person("O. Delaigue"), as.person("G. Thirel"), as.person("D. Dorchies"), as.person("C. Perrin"), as.person("C. Michel")), + journal = "R News", + year = year, + note = note, + doi = "10.15454/EX11NA", + url = "https://CRAN.R-project.org/package=airGR", + textVersion = + paste0("Coron, L., Delaigue, O., Thirel, G., Dorchies, D., Perrin, C. and Michel, C. (", year, "). airGR: Suite of GR Hydrological Models for Precipitation-Runoff Modelling. ", - note, - ". DOI: 10.15454/EX11NA. URL: https://CRAN.R-project.org/package=airGR." + note, ", ", + "doi: 10.15454/EX11NA", ", ", + "URL: https://CRAN.R-project.org/package=airGR." ) ) diff --git a/man/BasinObs.Rd b/man/BasinObs.Rd index f3c09bef9b82b94214f355af7ee68bf778041b78..ca3f864fe2ca5f22262b5d7c7cbeeb1c3db0f906 100644 --- a/man/BasinObs.Rd +++ b/man/BasinObs.Rd @@ -44,7 +44,7 @@ Riboust, P., Thirel, G., Le Moine, N. and Ribstein P. (2019). \cr\cr Vidal, J.-P., Martin, E., Franchistéguy, L., Baillon, M. and Soubeyroux, J. (2010). A 50-year high-resolution atmospheric reanalysis over France with the Safran system. - International Journal of Climatology, 30, 1627–1644. \doi{10.1002/joc.2003}. + International Journal of Climatology, 30, 1627–1644, \doi{10.1002/joc.2003}. } diff --git a/man/Calibration.Rd b/man/Calibration.Rd index 350d4ca032a6b275b5f9aa9220b7b4ae6fe7ca3e..c4779f0bd4ffa5478cdaaf36a3fc4a1783e5a04a 100644 --- a/man/Calibration.Rd +++ b/man/Calibration.Rd @@ -73,7 +73,7 @@ CalibOptions <- CreateCalibOptions(FUN_MOD = RunModel_GR4J, FUN_CALIB = Calibrat ## calibration OutputsCalib <- Calibration(InputsModel = InputsModel, RunOptions = RunOptions, - InputsCrit = InputsCrit, CalibOptions = CalibOptions, + InputsCrit = InputsCrit, CalibOptions = CalibOptions, FUN_MOD = RunModel_GR4J, FUN_CALIB = Calibration_Michel) diff --git a/man/Imax.Rd b/man/Imax.Rd index e02807f0530be377cfa9da4b1eab34eab7c96998..94db32fc8a5f85ee7e0d594f76d5ca220f72a06e 100644 --- a/man/Imax.Rd +++ b/man/Imax.Rd @@ -83,7 +83,7 @@ Ficchi, A. (2017). \cr\cr Ficchi, A., Perrin, C. and Andréassian, V. (2019). Hydrological modelling at multiple sub-daily time steps: model improvement via flux-matching. - Journal of Hydrology, 575, 1308-1327. \doi{10.1016/j.jhydrol.2019.05.084}. + Journal of Hydrology, 575, 1308-1327, \doi{10.1016/j.jhydrol.2019.05.084}. } diff --git a/man/RunModel.Rd b/man/RunModel.Rd index efead0f00cb88c0444224b2586647b6dbb4da1ad..2e76d41d065a140ff0440005ab6635eff63de620 100644 --- a/man/RunModel.Rd +++ b/man/RunModel.Rd @@ -3,7 +3,7 @@ \name{RunModel} \alias{RunModel} -\alias{[.OutputsModel} +%\alias{[.OutputsModel} \title{Run with the provided hydrological model function} @@ -16,8 +16,8 @@ Function which performs a single model run with the provided function over the s \usage{ RunModel(InputsModel, RunOptions, Param, FUN_MOD) - -\method{[}{OutputsModel}(x, i) +% +%\method{[}{OutputsModel}(x, i) } @@ -29,10 +29,10 @@ RunModel(InputsModel, RunOptions, Param, FUN_MOD) \item{Param}{[numeric] vector of model parameters (See details for SD lag model)} \item{FUN_MOD}{[function] hydrological model function (e.g. \code{\link{RunModel_GR4J}}, \code{\link{RunModel_CemaNeigeGR4J}})} - -\item{x}{[InputsModel] object of class InputsModel} - -\item{i}{[integer] of the indices to subset a time series or [character] names of the elements to extract} +% +%\item{x}{[InputsModel] object of class InputsModel} +% +%\item{i}{[integer] of the indices to subset a time series or [character] names of the elements to extract} } diff --git a/man/RunModel_CemaNeigeGR4J.Rd b/man/RunModel_CemaNeigeGR4J.Rd index fcc1cbd58aa25c056a657c643367f0911f9fe77c..c451c6a3f2be63b5ba5c29736b287358fe363b01 100644 --- a/man/RunModel_CemaNeigeGR4J.Rd +++ b/man/RunModel_CemaNeigeGR4J.Rd @@ -174,7 +174,7 @@ Valéry, A., Andréassian, V. and Perrin, C. (2014). \seealso{ -\code{\link{RunModel_CemaNeige}}, \code{\link{RunModel_CemaNeigeGR5J}}, +\code{\link{RunModel_CemaNeige}}, \code{\link{RunModel_CemaNeigeGR5J}}, \code{\link{RunModel_CemaNeigeGR6J}}, \code{\link{RunModel_GR4J}}, \code{\link{CreateInputsModel}}, \code{\link{CreateRunOptions}}, \code{\link{CreateIniStates}}. } diff --git a/man/RunModel_GR2M.Rd b/man/RunModel_GR2M.Rd index 6f62fdb97608be302738577874f0d25d250f62df..11b3f2ce58a89f8e5339abb80823728bc607f36d 100644 --- a/man/RunModel_GR2M.Rd +++ b/man/RunModel_GR2M.Rd @@ -113,7 +113,7 @@ Mouelhi S. (2003). Vers une chaîne cohérente de modèles pluie-débit conceptuels globaux aux pas de temps pluriannuel, annuel, mensuel et journalier. PhD thesis (in French), ENGREF - Cemagref Antony, France. \cr\cr -Mouelhi, S., Michel, C., Perrin, C. and Andréassian V. (2006). +Mouelhi, S., Michel, C., Perrin, C. and Andréassian, V. (2006). Stepwise development of a two-parameter monthly water balance model. Journal of Hydrology, 318(1-4), 200-214, \doi{10.1016/j.jhydrol.2005.06.014}. } diff --git a/src/frun_CEMANEIGE.f90 b/src/frun_CEMANEIGE.f90 index 494bba7fa8e445f7144f5ffa6f33ce293b109b01..2d659015e9d55bf3563b12a058123f21a3e15947 100644 --- a/src/frun_CEMANEIGE.f90 +++ b/src/frun_CEMANEIGE.f90 @@ -7,27 +7,28 @@ !------------------------------------------------------------------------------ ! AUTHORS ! Original code: A. Valéry, P. Riboust -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2011 ! Last modified: 22/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Riboust, P., G. Thirel, N. Le Moine and P. Ribstein (2019), Revisiting a -! simple degree-day model for integrating satellite data: implementation of -! SWE-SCA hystereses. Journal of Hydrology and Hydromechanics, -! doi:10.2478/johh-2018-0004, 67, 1, 70–81. +! Riboust, P., Thirel, G., Le Moine, N. and Ribstein, P. (2019). Revisiting a +! simple degree-day model for integrating satellite data: Implementation of +! SWE-SCA hystereses. Journal of Hydrology and Hydromechanics, 67(1), 70–81, +! doi: 10.2478/johh-2018-0004. ! -! Valéry, A., V. Andréassian and C. Perrin (2014), "As simple as possible but -! not simpler": what is useful in a temperature-based snow-accounting routine? -! Part 1 - Comparison of six snow accounting routines on 380 catchments, -! Journal of Hydrology, doi:10.1016/j.jhydrol.2014.04.059. +! Valéry, A., Andréassian, V. and Perrin, C. (2014). "As simple as possible but +! not simpler": What is useful in a temperature-based snow-accounting routine? +! Part 1 - Comparison of six snow accounting routines on 380 catchments. +! Journal of Hydrology, 517(0), 1166-1175, doi: 10.1016/j.jhydrol.2014.04.059. ! -! Valéry, A., V. Andréassian and C. Perrin (2014), "As simple as possible but -! not simpler": What is useful in a temperature-based snow-accounting routine? -! Part 2 - Sensitivity analysis of the Cemaneige snow accounting routine on -! 380 catchments, Journal of Hydrology, doi:10.1016/j.jhydrol.2014.04.058. +! Valéry, A., Andréassian, V. and Perrin, C. (2014). "As simple as possible but +! not simpler": What is useful in a temperature-based snow-accounting routine? +! Part 2 - Sensitivity analysis of the Cemaneige snow accounting routine on +! 380 catchments. Journal of Hydrology, 517(0), 1176-1187, +! doi: 10.1016/j.jhydrol.2014.04.058.! !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_cemaneige @@ -53,7 +54,7 @@ ! IsHyst ! integer, whether we should use the linear hysteresis [1] or not [0] ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and [-] and thresholds [mm]) @@ -89,7 +90,7 @@ IF (IsHyst .EQ. 1) IsHystBool = .TRUE. IF (IsHyst .EQ. 0) IsHystBool = .FALSE. - + !-------------------------------------------------------------- ! Initializations @@ -142,7 +143,7 @@ ! Snow pack volume before melt Ginit=G G=G+Psol - + ! Snow pack thermal state before melt eTG=CTG*eTG + (1.-CTG)*InputsTemp(k) @@ -156,7 +157,7 @@ PotMelt=0. ENDIF - + IF (IsHystBool) THEN IF (Potmelt.GT.0.) THEN IF (G.LT.Glocalmax.AND.Gratio.EQ.1.) Glocalmax=G ! Update in case of potential melt and G lower than Gseuil @@ -178,7 +179,7 @@ IF (IsHystBool) THEN dG=G-Ginit ! Melt in case of negative dG, accumulation otherwise - + IF (dG.GT.0.) THEN Gratio = MIN(Gratio+(Psol-Melt)/Gacc,1.d0) !Psol - Melt = dG IF (Gratio.EQ.1.) Glocalmax = Gthreshold diff --git a/src/frun_GR1A.f90 b/src/frun_GR1A.f90 index 45229d028b1f778b4d4207d1c9dc1f6b7efd7172..29d01064db54291960e1baf1939cd3f6185aa3b2 100644 --- a/src/frun_GR1A.f90 +++ b/src/frun_GR1A.f90 @@ -6,17 +6,17 @@ ! FILE : frun_GR1A.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: S. Mouelhi -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Mouelhi, S. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2003 ! Last modified: 25/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Mouelhi S. (2003). Vers une chaîne cohérente de modèles pluie-débit -! conceptuels globaux aux pas de temps pluriannuel, annuel, mensuel et -! journalier. PhD thesis (in French), ENGREF, Cemagref Antony, France. +! Mouelhi S. (2003). Vers une chaîne cohérente de modèles pluie-débit +! conceptuels globaux aux pas de temps pluriannuel, annuel, mensuel et +! journalier. PhD thesis (in French), ENGREF - Cemagref Antony, France. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr1a @@ -27,7 +27,7 @@ SUBROUTINE frun_gr1a(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR1A, get its parameters, performs the call +! Subroutine that initializes GR1A, get its parameters, performs the call ! to the MOD_GR1A subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -39,7 +39,7 @@ ! StateStart ! Vector of real, state variables used when the model run starts (none here) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (none here) @@ -60,7 +60,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals integer :: I,K integer, parameter :: NMISC=3 @@ -70,7 +70,7 @@ !-------------------------------------------------------------- ! Initializations !-------------------------------------------------------------- - + ! parameter values ! Param(1) : PE adjustment factor [-] @@ -131,7 +131,7 @@ integer, parameter :: NMISC=3 integer, parameter :: NParam=1 doubleprecision :: tt ! speed-up - + !! dummies ! in doubleprecision, dimension(NParam), intent(in) :: Param @@ -139,7 +139,7 @@ ! out doubleprecision, dimension(NMISC), intent(out) :: MISC doubleprecision, intent(out) :: Q - + ! Runoff ! speed-up diff --git a/src/frun_GR2M.f90 b/src/frun_GR2M.f90 index b05d11397bad06fbca523078ae87eaaed13b46a8..3bedfebbdd893e4c02a2d4acab30b084d3be869a 100644 --- a/src/frun_GR2M.f90 +++ b/src/frun_GR2M.f90 @@ -6,9 +6,9 @@ ! FILE : frun_GR2M.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: S. Mouelhi -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Mouelhi, S. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2003 ! Last modified: 16/04/2020 @@ -16,11 +16,11 @@ ! REFERENCES ! Mouelhi S. (2003). Vers une chaîne cohérente de modèles pluie-débit ! conceptuels globaux aux pas de temps pluriannuel, annuel, mensuel et -! journalier. PhD thesis (in French), ENGREF, Cemagref Antony, France. +! journalier. PhD thesis (in French), ENGREF - Cemagref Antony, France. ! -! Mouelhi, S., C. Michel, C. Perrin and V. Andréassian (2006). Stepwise +! Mouelhi, S., Michel, C., Perrin, C. and Andréassian, V. (2006). Stepwise ! development of a two-parameter monthly water balance model. Journal of -! Hydrology, 318(1-4), 200-214. doi:10.1016/j.jhydrol.2005.06.014. +! Hydrology, 318(1-4), 200-214, doi: 10.1016/j.jhydrol.2005.06.014. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr2m diff --git a/src/frun_GR4H.f90 b/src/frun_GR4H.f90 index bde6a9988ab15b640484d4dfb2286ff4b8fe488a..4833571943d824b65b94287ef29cbb5a9fc03001 100644 --- a/src/frun_GR4H.f90 +++ b/src/frun_GR4H.f90 @@ -6,17 +6,22 @@ ! FILE : frun_GR4H.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: C. Perrin -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Perrin, C. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2003 ! Last modified: 25/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Perrin, C., C. Michel and V. Andréassian (2003). Improvement of a -! parsimonious model for streamflow simulation. Journal of Hydrology, -! 279(1-4), 275-289, doi:10.1016/S0022-1694(03)00225-7. +! Mathevet, T. (2005). Quels modèles pluie-débit globaux pour le pas de temps +! horaire ? Développement empirique et comparaison de modèles sur un large +! échantillon de bassins versants. PhD thesis (in French), ENGREF - Cemagref +! Antony, Paris, France. +! +! Le Moine, N. (2008). Le bassin versant de surface vu par le souterrain : une +! voie d'amélioration des performances et du réalisme des modèles pluie-débit ? +! PhD thesis (in French), UPMC - Cemagref Antony, Paris, France. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr4h @@ -27,7 +32,7 @@ SUBROUTINE frun_gr4h(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR4H, get its parameters, performs the call +! Subroutine that initializes GR4H, get its parameters, performs the call ! to the MOD_GR4H subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -39,7 +44,7 @@ ! StateStart ! Vector of real, state variables used when the model run starts (store levels [mm] and Unit Hydrograph (UH) storages [mm]) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and Unit Hydrograph (UH) storages [mm]) @@ -60,7 +65,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals integer :: I,K integer, parameter :: NH=480,NMISC=30 @@ -98,7 +103,7 @@ !computation of UH ordinates OrdUH1 = 0. OrdUH2 = 0. - + D=1.25 CALL UH1_H(OrdUH1,Param(4),D) CALL UH2_H(OrdUH2,Param(4),D) @@ -193,7 +198,7 @@ ! out doubleprecision, intent(out) :: Q doubleprecision, dimension(NMISC), intent(out) :: MISC - + A=Param(1) @@ -203,15 +208,15 @@ PN=0. WS=EN/A IF(WS.GT.13.) WS=13. - + ! speed-up expWS = exp(2.*WS) TWS = (expWS - 1.)/(expWS + 1.) Sr = St(1)/A ER=St(1)*(2.-Sr)*TWS/(1.+(1.-Sr)*TWS) ! ER=X(2)*(2.-X(2)/A)*tanHyp(WS)/(1.+(1.-X(2)/A)*tanHyp(WS)) - ! end speed-up - + ! end speed-up + AE=ER+P1 St(1)=St(1)-ER PR=0. @@ -222,7 +227,7 @@ PN=P1-E WS=PN/A IF(WS.GT.13.)WS=13. - + ! speed-up expWS = exp(2.*WS) TWS = (expWS - 1.)/(expWS + 1.) @@ -230,7 +235,7 @@ PS=A*(1.-Sr*Sr)*TWS/(1.+Sr*TWS) ! PS=A*(1.-(X(2)/A)**2.)*tanHyp(WS)/(1.+X(2)/A*tanHyp(WS)) ! end speed-up - + PR=PN-PS St(1)=St(1)+PS ENDIF diff --git a/src/frun_GR4J.f90 b/src/frun_GR4J.f90 index 55667a4a45653c2c2a98ee30349f17a8ebdf98d3..bfba7078519d593158c70235006461b65d3f8644 100644 --- a/src/frun_GR4J.f90 +++ b/src/frun_GR4J.f90 @@ -6,17 +6,17 @@ ! FILE : frun_GR4J.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: C. Perrin -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Perrin, C. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2000 ! Last modified: 25/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Perrin, C., C. Michel and V. Andréassian (2003). Improvement of a -! parsimonious model for streamflow simulation. Journal of Hydrology, -! 279(1-4), 275-289. doi:10.1016/S0022-1694(03)00225-7. +! Perrin, C., Michel, C. and Andréassian, V. (2003). Improvement of a +! parsimonious model for streamflow simulation. Journal of Hydrology, +! 279(1-4), 275-289, doi: 10.1016/S0022-1694(03)00225-7. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr4j @@ -27,7 +27,7 @@ SUBROUTINE frun_gr4j(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR4J, get its parameters, performs the call +! Subroutine that initializes GR4J, get its parameters, performs the call ! to the MOD_GR4J subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -39,7 +39,7 @@ ! StateStart ! Vector of real, state variables used when the model run starts (store levels [mm] and Unit Hydrograph (UH) storages [mm]) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and Unit Hydrograph (UH) storages [mm]) @@ -60,7 +60,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals integer :: I,K integer, parameter :: NH=20,NMISC=30 @@ -98,7 +98,7 @@ ! computation of UH ordinates OrdUH1 = 0. OrdUH2 = 0. - + D=2.5 CALL UH1(OrdUH1,Param(4),D) CALL UH2(OrdUH2,Param(4),D) @@ -209,7 +209,7 @@ Sr = St(1)/A ER=St(1)*(2.-Sr)*TWS/(1.+(1.-Sr)*TWS) ! ER=X(2)*(2.-X(2)/A)*tanHyp(WS)/(1.+(1.-X(2)/A)*tanHyp(WS)) - ! end speed-up + ! end speed-up AE=ER+P1 St(1)=St(1)-ER PS=0. diff --git a/src/frun_GR5H.f90 b/src/frun_GR5H.f90 index c2ccfe7153f1effca0aca8c5575d15d1f4142d15..2027f47cee451b0a239d868974bfffb6ff109357 100644 --- a/src/frun_GR5H.f90 +++ b/src/frun_GR5H.f90 @@ -6,26 +6,21 @@ ! FILE : frun_GR5H.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: N. Le Moine, A. Ficchì -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Le Moine, N., Ficchì, A. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2006 ! Last modified: 26/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Ficchì, A., Perrin, C., and Andréassian, V. (2019). Hydrological modelling at -! multiple sub-daily time steps: model improvement via flux-matching, Journal -! of Hydrology, 575, 1308-1327, https://doi.org/10.1016/j.jhydrol.2019.05.084. +! Ficchi, A. (2017). An adaptive hydrological model for multiple time-steps: +! Diagnostics and improvements based on fluxes consistency. PhD thesis, +! UPMC - Irstea Antony, Paris, France. ! -! Le Moine, N. (2008). Le bassin versant de surface vu par le souterrain : une -! voie d'amélioration des performances et du réalisme des modèles -! pluie-débit ? PhD thesis (French), UPMC, Paris, France. -! -! Pushpalatha, R., C. Perrin, N. Le Moine, T. Mathevet, and V. Andréassian -! (2011). A downward structural sensitivity analysis of hydrological models to -! improve low-flow simulation. Journal of Hydrology, 411(1-2), 66-76. -! doi:10.1016/j.jhydrol.2011.09.034. +! Ficchi, A., Perrin, C. and Andréassian, V. (2019). Hydrological modelling at +! multiple sub-daily time steps: model improvement via flux-matching. Journal +! of Hydrology, 575, 1308-1327, doi: 10.1016/j.jhydrol.2019.05.084. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr5h @@ -36,7 +31,7 @@ SUBROUTINE frun_gr5h(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,Imax,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR5H, get its parameters, performs the call +! Subroutine that initializes GR5H, get its parameters, performs the call ! to the MOD_GR5H subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -49,7 +44,7 @@ ! Imax ! Real, fixed capacity of the interception store [mm] (used only if IsIntStore >= 0) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and Unit Hydrograph (UH) storages [mm]) @@ -71,7 +66,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals logical :: IsIntStore ! TRUE if interception store is used, FALSE otherwise integer :: I,K @@ -208,7 +203,7 @@ IF (IsIntStore .EQV. .TRUE.) THEN ! MODIFIED - A. Ficchi - ! Calculation of interception fluxes [EI] and throughfall [PTH] + ! Calculation of interception fluxes [EI] and throughfall [PTH] ! & update of the Interception store state, St(3) ! Interception store calculation, with evaporation prior to throughfall @@ -260,7 +255,7 @@ Sr = St(1)/A ES=St(1)*(2.-Sr)*TWS/(1.+(1.-Sr)*TWS) ! ES=X(2)*(2.-X(2)/A)*tanHyp(WS)/(1.+(1.-X(2)/A)*tanHyp(WS)) - ! end speed-up + ! end speed-up AE=ES+P1 EI = P1 St(1)=St(1)-ES @@ -281,7 +276,7 @@ PS=A*(1.-Sr*Sr)*TWS/(1.+Sr*TWS) ! PS=A*(1.-(X(2)/A)**2.)*tanHyp(WS)/(1.+X(2)/A*tanHyp(WS)) ! end speed-up - + PR=PN-PS St(1)=St(1)+PS ENDIF diff --git a/src/frun_GR5J.f90 b/src/frun_GR5J.f90 index b45312484455acd37504e930b6127ef5692985c8..47d3c79657a5a5f674902b9b0acb3c514c1fa573 100644 --- a/src/frun_GR5J.f90 +++ b/src/frun_GR5J.f90 @@ -6,22 +6,22 @@ ! FILE : frun_GR5J.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: N. Le Moine -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Le Moine, N. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2006 ! Last modified: 25/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Le Moine, N. (2008). Le bassin versant de surface vu par le souterrain : une -! voie d'amélioration des performances et du réalisme des modèles -! pluie-débit ? PhD thesis (French), UPMC, Paris, France. +! Le Moine, N. (2008). Le bassin versant de surface vu par le souterrain : une +! voie d'amélioration des performances et du réalisme des modèles pluie-débit ? +! PhD thesis (in French), UPMC - Cemagref Antony, Paris, France. ! -! Pushpalatha, R., C. Perrin, N. Le Moine, T. Mathevet, and V. Andréassian -! (2011). A downward structural sensitivity analysis of hydrological models to -! improve low-flow simulation. Journal of Hydrology, 411(1-2), 66-76. -! doi:10.1016/j.jhydrol.2011.09.034. +! Pushpalatha, R., Perrin, C., Le Moine, N., Mathevet, T. and Andréassian, V. +! (2011). A downward structural sensitivity analysis of hydrological models to +! improve low-flow simulation. Journal of Hydrology, 411(1-2), 66-76, +! doi: 10.1016/j.jhydrol.2011.09.034. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr5j @@ -32,7 +32,7 @@ SUBROUTINE frun_gr5j(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR5J, get its parameters, performs the call +! Subroutine that initializes GR5J, get its parameters, performs the call ! to the MOD_GR5J subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -44,7 +44,7 @@ ! StateStart ! Vector of real, state variables used when the model run starts (store levels [mm] and Unit Hydrograph (UH) storages [mm]) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and Unit Hydrograph (UH) storages [mm]) @@ -65,7 +65,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals integer :: I,K integer, parameter :: NH=20,NMISC=30 @@ -201,7 +201,7 @@ Sr = St(1)/A ER=St(1)*(2.-Sr)*TWS/(1.+(1.-Sr)*TWS) ! ER=X(2)*(2.-X(2)/A)*tanHyp(WS)/(1.+(1.-X(2)/A)*tanHyp(WS)) - ! end speed-up + ! end speed-up AE=ER+P1 St(1)=St(1)-ER PS=0. @@ -219,7 +219,7 @@ PS=A*(1.-Sr*Sr)*TWS/(1.+Sr*TWS) ! PS=A*(1.-(X(2)/A)**2.)*tanHyp(WS)/(1.+X(2)/A*tanHyp(WS)) ! end speed-up - + PR=PN-PS St(1)=St(1)+PS ENDIF diff --git a/src/frun_GR6J.f90 b/src/frun_GR6J.f90 index 0fa325770325b1905eb8fe1017c18761b51661cd..f5a6e8a966bd0eb936d1448243972247b5ef2479 100644 --- a/src/frun_GR6J.f90 +++ b/src/frun_GR6J.f90 @@ -6,18 +6,18 @@ ! FILE : frun_GR6J.f !------------------------------------------------------------------------------ ! AUTHORS -! Original code: R. Pushpalatha -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Original code: Pushpalatha, R. +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2010 ! Last modified: 25/11/2019 !------------------------------------------------------------------------------ ! REFERENCES -! Pushpalatha, R., C. Perrin, N. Le Moine, T. Mathevet and V. Andréassian! -! (2011). A downward structural sensitivity analysis of hydrological models to -! improve low-flow simulation. Journal of Hydrology, 411(1-2), 66-76. -! doi:10.1016/j.jhydrol.2011.09.034. +! Pushpalatha, R., Perrin, C., Le Moine, N., Mathevet, T. and Andréassian, V. +! (2011). A downward structural sensitivity analysis of hydrological models to +! improve low-flow simulation. Journal of Hydrology, 411(1-2), 66-76, +! doi: 10.1016/j.jhydrol.2011.09.034. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_gr6j @@ -28,7 +28,7 @@ SUBROUTINE frun_gr6j(LInputs,InputsPrecip,InputsPE,NParam,Param, & NStates,StateStart,NOutputs,IndOutputs, & Outputs,StateEnd) -! Subroutine that initializes GR6J, get its parameters, performs the call +! Subroutine that initializes GR6J, get its parameters, performs the call ! to the MOD_GR6J subroutine at each time step, and stores the final states ! Inputs ! LInputs ! Integer, length of input and output series @@ -40,7 +40,7 @@ ! StateStart ! Vector of real, state variables used when the model run starts (store levels [mm] and Unit Hydrograph (UH) storages [mm]) ! NOutputs ! Integer, number of output series ! IndOutputs ! Vector of integer, indices of output series -! Outputs +! Outputs ! Outputs ! Vector of real, output series ! StateEnd ! Vector of real, state variables at the end of the model run (store levels [mm] and Unit Hydrograph (UH) storages [mm]) @@ -61,7 +61,7 @@ ! out doubleprecision, dimension(NStates), intent(out) :: StateEnd doubleprecision, dimension(LInputs,NOutputs), intent(out) :: Outputs - + !! locals integer :: I,K integer, parameter :: NH=20,NMISC=30 @@ -102,11 +102,11 @@ ! computation of HU ordinates OrdUH1 = 0. OrdUH2 = 0. - + D=2.5 CALL UH1(OrdUH1,Param(4),D) CALL UH2(OrdUH2,Param(4),D) - + ! initialization of model outputs Q = -999.999 MISC = -999.999 @@ -208,15 +208,15 @@ PN=0. WS=EN/A IF(WS.GT.13) WS=13. - + ! speed-up expWS = exp(2.*WS) TWS = (expWS - 1.)/(expWS + 1.) Sr = St(1)/A ER=St(1)*(2.-Sr)*TWS/(1.+(1.-Sr)*TWS) ! ER=X(2)*(2.-X(2)/A)*tanHyp(WS)/(1.+(1.-X(2)/A)*tanHyp(WS)) - ! end speed-up - + ! end speed-up + AE=ER+P1 St(1)=St(1)-ER PS=0. @@ -227,15 +227,15 @@ PN=P1-E WS=PN/A IF(WS.GT.13) WS=13. - + ! speed-up expWS = exp(2.*WS) TWS = (expWS - 1.)/(expWS + 1.) Sr = St(1)/A PS=A*(1.-Sr*Sr)*TWS/(1.+Sr*TWS) ! PS=A*(1.-(X(2)/A)**2.)*tanHyp(WS)/(1.+X(2)/A*tanHyp(WS)) - ! end speed-up - + ! end speed-up + PR=PN-PS St(1)=St(1)+PS ENDIF @@ -249,7 +249,7 @@ Sr = Sr * Sr PERC=St(1)*(1.-1./SQRT(SQRT(1.+Sr/stored_val))) ! PERC=X(2)*(1.-(1.+(X(2)/(9./4.*Param(1)))**4.)**(-0.25)) - ! end speed-up + ! end speed-up St(1)=St(1)-PERC @@ -279,7 +279,7 @@ IF((St(2)+(1-C)*StUH1(1)+EXCH).LT.0) AEXCH1=-St(2)-(1-C)*StUH1(1) St(2)=St(2)+(1-C)*StUH1(1)+EXCH IF(St(2).LT.0.) St(2)=0. - + ! speed-up Rr = St(2)/Param(3) Rr = Rr * Rr @@ -287,7 +287,7 @@ QR=St(2)*(1.-1./SQRT(SQRT(1.+Rr))) ! QR=X(1)*(1.-(1.+(X(1)/Param(3))**4.)**(-1./4.)) ! end speed-up - + St(2)=St(2)-QR ! Update of exponential store diff --git a/src/frun_PE.f90 b/src/frun_PE.f90 index be4e84a525dff970c19c1025fe01486d9b5bc298..123191b91c415b25a779d132e6274b27e0d7be4d 100644 --- a/src/frun_PE.f90 +++ b/src/frun_PE.f90 @@ -6,19 +6,19 @@ ! FILE : frun_PE.f90 !------------------------------------------------------------------------------ ! AUTHORS -! Original code: L. Oudin -! Cleaning and formatting for airGR: Fr. Bourgin -! Further cleaning: O. Delaigue, G. Thirel +! Original code: Oudin, L. +! Cleaning and formatting for airGR: Bourgin, F. +! Further cleaning: Delaigue, O., Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2004 ! Last modified: 20/10/2020 !------------------------------------------------------------------------------ ! REFERENCES ! Oudin, L., Hervieu, F., Michel, C., Perrin, C., Andréassian, V., -! Anctil, F. and Loumagne, C., 2005. Which potential evapotranspiration -! input for a rainfall-runoff model? Part 2 - Towards a simple and -! efficient PE model for rainfall-runoff modelling. Journal of Hydrology -! 303(1-4), 290-306. +! Anctil, F. and Loumagne, C. (2005). Which potential evapotranspiration +! input for a lumped rainfall-runoff model? Part 2 - Towards a simple and +! efficient potential evapotranspiration model for rainfall-runoff modelling. +! Journal of Hydrology, 303(1-4), 290-306, doi: 10.1016/j.jhydrol.2004.08.026. !------------------------------------------------------------------------------ ! Quick description of public procedures: ! 1. frun_pe_oudin @@ -29,7 +29,7 @@ !******************************************************************************* SUBROUTINE frun_pe_oudin(LInputs,InputsLAT,InputsTemp,InputsJJ,OutputsPE) !******************************************************************************* -! Subroutine that performs the call to the PE_OUDIN subroutine at each time step, +! Subroutine that performs the call to the PE_OUDIN subroutine at each time step, ! and stores the final values ! Inputs ! LInputs ! Integer, length of input and output series @@ -51,21 +51,21 @@ doubleprecision, dimension(LInputs), intent(in) :: InputsLAT doubleprecision, dimension(LInputs), intent(in) :: InputsTemp doubleprecision, dimension(LInputs), intent(in) :: InputsJJ - + ! out doubleprecision, dimension(LInputs), intent(out) :: OutputsPE - + !! locals integer :: k doubleprecision :: FI, tt, jj, PEoud - + !-------------------------------------------------------------- ! Time loop !-------------------------------------------------------------- DO k = 1, LInputs tt = InputsTemp(k) jj = InputsJJ(k) - FI = InputsLAT(k)! + FI = InputsLAT(k)! !model run on one time step CALL PE_OUDIN(FI, tt, jj, PEoud) !storage of outputs diff --git a/src/utils_D.f90 b/src/utils_D.f90 index d12b96d3cc119e36bad19395595f86e68544a03e..5a640358004cebb36b8b5cbc59cb1e7e843fa118 100644 --- a/src/utils_D.f90 +++ b/src/utils_D.f90 @@ -8,8 +8,8 @@ !------------------------------------------------------------------------------ ! AUTHORS ! Original code: Unknown soldier -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2000 ! Last modified: 21/11/2019 diff --git a/src/utils_H.f90 b/src/utils_H.f90 index 6d9021392dc6c6fbd8119a0532539036d75ab111..73c278d636865694a582c9a5db753c8b139a5bd0 100644 --- a/src/utils_H.f90 +++ b/src/utils_H.f90 @@ -7,8 +7,8 @@ !------------------------------------------------------------------------------ ! AUTHORS ! Original code: Unknown soldier -! Cleaning and formatting for airGR: L. Coron -! Further cleaning: G. Thirel +! Cleaning and formatting for airGR: Coron, L. +! Further cleaning: Thirel, G. !------------------------------------------------------------------------------ ! Creation date: 2000 ! Last modified: 22/11/2019 diff --git a/vignettes/V01_get_started.Rmd b/vignettes/V01_get_started.Rmd index 818e4b9227405fa8fa0b1fd8a2a01e7fd07ba5ef..feecacbda9c5da715c3e7b324c33073550b2d095 100644 --- a/vignettes/V01_get_started.Rmd +++ b/vignettes/V01_get_started.Rmd @@ -10,7 +10,7 @@ vignette: > # Introduction -**airGR** is a package that brings into the [**R software**](https://cran.r-project.org/) the hydrological modelling tools used and developed at the [Catchment Hydrology Research Group](https://webgr.inrae.fr/en/home/) at [INRAE (France)](https://www.inrae.fr/en), including the [**GR rainfall-runoff models**](https://webgr.inrae.fr/en/models/) and a snowmelt and accumulation model, [**CemaNeige**](https://webgr.inrae.fr/en/home/models/snow-model/). Each model core is coded in **Fortran** to ensure low computational time. The other package functions (i.e. mainly the calibration algorithm and the efficiency criteria calculation) are coded in **R**. +**airGR** is a package that brings into the [**R software**](https://cran.r-project.org/) the hydrological modelling tools used and developed at the [Catchment Hydrology Research Group](https://webgr.inrae.fr/en/home/) at [INRAE (France)](https://www.inrae.fr/en), including the [**GR rainfall-runoff models**](https://webgr.inrae.fr/en/models/) and a snowmelt and accumulation model, [**CemaNeige**](https://webgr.inrae.fr/en/models/snow-model/). Each model core is coded in **Fortran** to ensure low computational time. The other package functions (i.e. mainly the calibration algorithm and the efficiency criteria calculation) are coded in **R**. The **airGR** package has been designed to fulfill two major requirements: to facilitate the use by non-expert users and to allow flexibility regarding the addition of external criteria, models or calibration algorithms. The names of the functions and their arguments were chosen to this end. **airGR** also contains basics plotting facilities. @@ -35,7 +35,7 @@ The models can be called within **airGR** using the following functions: * `RunModel_CemaNeigeGR5J()`: combined use of **GR5J** and **CemaNeige** * `RunModel_CemaNeigeGR6J()`: combined use of **GR6J** and **CemaNeige** -The [**GRP**](https://webgr.inrae.fr/en/home/models/hydrological-forecasting-model-grp/) forecasting model and the [**Otamin**](https://webgr.inrae.fr/en/home/software/otamin/) predictive uncertainty tool are not available in **airGR**. +The [**GRP**](https://webgr.inrae.fr/en/models/hydrological-forecasting-model-grp/) forecasting model and the [**Otamin**](https://webgr.inrae.fr/en/software/otamin/) predictive uncertainty tool are not available in **airGR**. In this vignette, we show how to prepare and run a calibration and a simulation with airGR hydrological models.