diff --git a/DESCRIPTION b/DESCRIPTION
index 71dce2dea155259259e43d479cf12170e7e19a7e..842c7d74914727597602e6d1c669bc464aacd62f 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.2.8.11
+Version: 1.2.9.0
 Date: 2019-03-12
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl"), comment = c(ORCID = "0000-0002-1503-6204")),
diff --git a/NEWS.rmd b/NEWS.rmd
index 72926193a6078da72ab6fd9aef7212770ba0cc6b..1c9aa29793ce59419808f918fc7844ece935a1c6 100644
--- a/NEWS.rmd
+++ b/NEWS.rmd
@@ -13,7 +13,7 @@ output:
 
 
 
-### 1.2.8.11 Release Notes (2019-03-12) 
+### 1.2.9.0 Release Notes (2019-03-12) 
 
 
 
@@ -60,6 +60,8 @@ output:
 
 - It is now possible to be redirected on the documantation about <code>plot.OutputsModel()</code> with <code>?plot</code>.
 
+- It is now possible to use a character vector the function name (in addition to function objects) in all <code>FUN_&#42;</code> arguments of the following functions: <code>Calibration()</code>, <code>Calibration_Michel()</code>, <code>CreateCalibOptions()</code>, <code>CreateIniStates()</code>, <code>CreateIniStates()</code>, <code>CreateInputsCrit()</code>, <code>CreateInputsModel()</code>, <code>CreateRunOptions()</code>, <code>ErrorCrit()</code>, <code>RunModel()</code> and <code>TransfoParam()</code>.
+
 
 #### Minor user-visible changes
 
diff --git a/R/Calibration.R b/R/Calibration.R
index 162fd7d7b9a076c1fad7c9fd5f9dbdbd7b07f2a0..6c6f4980fc7ca631e66a3f2bdd1ab0cf93f64d01 100644
--- a/R/Calibration.R
+++ b/R/Calibration.R
@@ -1,9 +1,10 @@
 Calibration <- function(InputsModel, RunOptions, InputsCrit, CalibOptions,
                         FUN_MOD, FUN_CRIT, FUN_CALIB = Calibration_Michel, FUN_TRANSFO = NULL,
                         verbose = TRUE) {
-  if (! is.function(FUN_CALIB)) {
-    stop("'FUN_CALIB' must be a function")
-  }
+  FUN_MOD   <- match.fun(FUN_MOD)
+  FUN_CRIT  <- match.fun(FUN_CRIT)
+  FUN_CALIB <- match.fun(FUN_CALIB)
+  FUN_TRANSFO <- match.fun(FUN_TRANSFO)
   return(FUN_CALIB(InputsModel, RunOptions, InputsCrit, CalibOptions, FUN_MOD, FUN_CRIT, FUN_TRANSFO, verbose = verbose))
 }
 
diff --git a/R/Calibration_Michel.R b/R/Calibration_Michel.R
index 7649d7226167fc7bb2b11045049e300266c2a5c8..8448ab52a2f3b44c26af2e86fad68d6dacc00698 100644
--- a/R/Calibration_Michel.R
+++ b/R/Calibration_Michel.R
@@ -2,6 +2,13 @@ Calibration_Michel <- function(InputsModel, RunOptions, InputsCrit, CalibOptions
                                FUN_MOD, FUN_CRIT, FUN_TRANSFO = NULL, verbose = TRUE) {
   
   
+  FUN_MOD     <- match.fun(FUN_MOD)
+  FUN_CRIT    <- match.fun(FUN_CRIT)
+  if (!is.null(FUN_TRANSFO)) {
+    FUN_TRANSFO <- match.fun(FUN_TRANSFO)
+  }
+  
+  
   ##_____Arguments_check_____________________________________________________________________
   if (!inherits(InputsModel, "InputsModel")) {
     stop("InputsModel must be of class 'InputsModel'")
diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R
index cc09f8c02c8fd9c1d6628fab87a1fc9407e40886..944d636098ff3869eac142c8b68b12f91f264a58 100644
--- a/R/CreateCalibOptions.R
+++ b/R/CreateCalibOptions.R
@@ -1,14 +1,16 @@
-CreateCalibOptions <-
-  function(FUN_MOD,
-           FUN_CALIB = Calibration_Michel,
-           FUN_TRANSFO = NULL,
-           FixedParam = NULL,
-           SearchRanges = NULL,
-           StartParamList = NULL,
-           StartParamDistrib = NULL) {
-    
-    ObjectClass <- NULL
+CreateCalibOptions <- function(FUN_MOD,
+                               FUN_CALIB = Calibration_Michel,
+                               FUN_TRANSFO = NULL,
+                               FixedParam = NULL,
+                               SearchRanges = NULL,
+                               StartParamList = NULL,
+                               StartParamDistrib = NULL) {
+  
+  ObjectClass <- NULL
     
+    FUN_MOD     <- match.fun(FUN_MOD)
+    FUN_CALIB   <- match.fun(FUN_CALIB)
+    FUN_TRANSFO <- match.fun(FUN_TRANSFO)
     
     ##check_FUN_MOD
     BOOL <- FALSE
diff --git a/R/CreateIniStates.R b/R/CreateIniStates.R
index 92e57660992f62d83bddaeb6f6d0c2f9333ee080..234802e7d242c5c7c8df63d569ac458eecb84a29 100644
--- a/R/CreateIniStates.R
+++ b/R/CreateIniStates.R
@@ -11,6 +11,7 @@ CreateIniStates <- function(FUN_MOD, InputsModel,
   UH1n <- 20L
   UH2n <- UH1n * 2L
   
+  FUN_MOD <- match.fun(FUN_MOD)
   
   ## check FUN_MOD
   BOOL <- FALSE
diff --git a/R/CreateInputsCrit.R b/R/CreateInputsCrit.R
index 3d98d517bcb50a8d648537bc0639adde2d2cb08e..ea37616f96ee63c3f4d731679f91995a929dc9bc 100644
--- a/R/CreateInputsCrit.R
+++ b/R/CreateInputsCrit.R
@@ -15,6 +15,8 @@ CreateInputsCrit <- function(FUN_CRIT,
   
   ObjectClass <- NULL
   
+  FUN_CRIT <- match.fun(FUN_CRIT)
+  
   ## ---------- check arguments
   
   if (!missing(Qobs)) {
diff --git a/R/CreateInputsModel.R b/R/CreateInputsModel.R
index 6597dae497d04a79a0abc0e65d408923040c2c8b..b99a10ecd0b3b8cdf17606162e1227cc75c1ef6a 100644
--- a/R/CreateInputsModel.R
+++ b/R/CreateInputsModel.R
@@ -9,6 +9,8 @@ CreateInputsModel <- function(FUN_MOD,
     
     ObjectClass <- NULL
     
+    FUN_MOD <- match.fun(FUN_MOD)
+    
     ##check_FUN_MOD
     BOOL <- FALSE
     if (identical(FUN_MOD, RunModel_GR4H)) {
diff --git a/R/CreateRunOptions.R b/R/CreateRunOptions.R
index 753ed319b323083f06701442ecc2f3597658d94b..5cc017f3cb31143fdd177faf4c9099d8ee1217ad 100644
--- a/R/CreateRunOptions.R
+++ b/R/CreateRunOptions.R
@@ -10,6 +10,8 @@ CreateRunOptions <- function(FUN_MOD, InputsModel, IndPeriod_WarmUp = NULL, IndP
   
   ObjectClass <- NULL
   
+  FUN_MOD <- match.fun(FUN_MOD)
+  
   ##check_FUN_MOD
   BOOL <- FALSE;
   if (identical(FUN_MOD, RunModel_GR4H)) {
diff --git a/R/ErrorCrit.R b/R/ErrorCrit.R
index a84230a62f8000bde61edb39bbf95ba66d93b0a5..a0f5b8cbb7a5b04269615a1d9b4d9cece5c4f0f8 100644
--- a/R/ErrorCrit.R
+++ b/R/ErrorCrit.R
@@ -1,5 +1,7 @@
 ErrorCrit <- function(InputsCrit, OutputsModel, FUN_CRIT, warnings = TRUE, verbose = TRUE) {
   
+  FUN_CRIT <- match.fun(FUN_CRIT)
+  
   ## ---------- Arguments check
   
   if (!inherits(InputsCrit, "InputsCrit")) {
diff --git a/R/RunModel.R b/R/RunModel.R
index a561c1b4c27320b6524bfd40ea13a57a84b86876..80d6b370bb029c4e66ad78cea419422ad5bcb364 100644
--- a/R/RunModel.R
+++ b/R/RunModel.R
@@ -1,3 +1,4 @@
 RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD) {
+  FUN_MOD <- match.fun(FUN_MOD)
   return(FUN_MOD(InputsModel, RunOptions, Param))
 }
diff --git a/R/TransfoParam.R b/R/TransfoParam.R
index fcc5368f4a9c4a0b2794710286506751915ac921..dcda7b088a732c5a867cb13e09d0f7d2784861ed 100644
--- a/R/TransfoParam.R
+++ b/R/TransfoParam.R
@@ -1,3 +1,4 @@
 TransfoParam <- function(ParamIn, Direction, FUN_TRANSFO) {
+  FUN_TRANSFO <- match.fun(FUN_TRANSFO)
   return(FUN_TRANSFO(ParamIn, Direction))
 }