RunModel <- function(InputsModel, RunOptions, Param, FUN_MOD, ...) { FUN_MOD <- match.fun(FUN_MOD) if (inherits(InputsModel, "SD") && !identical(FUN_MOD, RunModel_Lag)) { # Lag model take one parameter at the beginning of the vector iFirstParamRunOffModel <- 2 RunOptions$FeatFUN_MOD$NbParam <- RunOptions$FeatFUN_MOD$NbParam - 1 } else { # All parameters iFirstParamRunOffModel <- 1 } OutputsModel <- FUN_MOD(InputsModel = InputsModel, RunOptions = RunOptions, Param = Param[iFirstParamRunOffModel:length(Param)], ...) if (inherits(InputsModel, "SD") && !identical(FUN_MOD, RunModel_Lag)) { OutputsModel <- RunModel_Lag(InputsModel, RunOptions, Param[1], OutputsModel) } return(OutputsModel) }