#' RunModel function for *BasinsObs* object #' #' This function simplifies the run of an airGRiwrm model by chaining all the steps ([airGRiwrm::CreateInputsModel.GRiwrm], [airGRiwrm::CreateRunOptions.GRiwrmInputsModel] and [airGRiwrm::RunModel.GRiwrmInputsModel]) into one single step. #' #' @param BasinsObs an object of class *BasinsObs*, see [loadBasinsObs] and [createBasinsObs] #' @param paramFile [character] the path of the file containing the model parameters (use to call [loadCalibrationParams]) #' @param InputsModel an object of class *GRiwrmInputsModel*, see [CreateInputsModel.BasinsObs] #' @param IndPeriod_WarmUp (optional) [numeric] index of period to be used for the model warm-up [-]. See [airGR::CreateRunOptions] for details #' @param IndPeriod_Run (optional) [numeric] index of period to be used for the model run [-]. See [airGR::CreateRunOptions] for details #' @param ... not used (compatibility with others S3 methods) #' @template param_cfg #' #' @return An object of class *GriwrmOutputsModel* produced by [airGRiwrm::RunModel.GRiwrmInputsModel] #' @export #' RunModel.BasinsObs <- function(BasinsObs, paramFile, InputsModel = suppressMessages(CreateInputsModel(BasinsObs)), IndPeriod_WarmUp = seq(1, 365), IndPeriod_Run = seq(366, length(BasinsObs$DatesR)), cfg = loadConfig(), ...) { RunOptions <- suppressWarnings( airGRiwrm::CreateRunOptions( InputsModel, IndPeriod_WarmUp = IndPeriod_WarmUp, IndPeriod_Run = IndPeriod_Run ) ) Param <- loadCalibrationParams(paramFile) suppressMessages(RunModel(InputsModel, RunOptions, Param)) }