diff --git a/R/CreateRunOptions.R b/R/CreateRunOptions.R index 39caf90952178f8f97ce8d81edd907f40dca2d50..d43e99b7dd1e2e5506ad240c74de0d1c5b7f372b 100644 --- a/R/CreateRunOptions.R +++ b/R/CreateRunOptions.R @@ -295,31 +295,7 @@ CreateRunOptions <- function(FUN_MOD, InputsModel, ##check_Outputs_Cal_and_Sim ##Outputs_all - Outputs_all <- NULL - if (identical(FUN_MOD, RunModel_GR4H) | identical(FUN_MOD, RunModel_CemaNeigeGR4H)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR4H")$GR) - } - if (identical(FUN_MOD, RunModel_GR5H) | identical(FUN_MOD, RunModel_CemaNeigeGR5H)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR5H")$GR) - } - if (identical(FUN_MOD, RunModel_GR4J) | identical(FUN_MOD, RunModel_CemaNeigeGR4J)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR4J")$GR) - } - if (identical(FUN_MOD, RunModel_GR5J) | identical(FUN_MOD, RunModel_CemaNeigeGR5J)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR5J")$GR) - } - if (identical(FUN_MOD, RunModel_GR6J) | identical(FUN_MOD, RunModel_CemaNeigeGR6J)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR6J")$GR) - } - if (identical(FUN_MOD, RunModel_GR2M)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR2M")$GR) - } - if (identical(FUN_MOD, RunModel_GR1A)) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = "GR1A")$GR) - } - if ("CemaNeige" %in% ObjectClass) { - Outputs_all <- c(Outputs_all, .FortranOutputs(GR = NULL, isCN = TRUE)$CN) - } + Outputs_all <- c("DatesR", unlist(FortranOutputs), "WarmUpQsim", "StateEnd") ##check_Outputs_Sim if (!is.vector(Outputs_Sim)) { @@ -332,9 +308,9 @@ CreateRunOptions <- function(FUN_MOD, InputsModel, stop("'Outputs_Sim' must not contain NA") } if ("all" %in% Outputs_Sim) { - Outputs_Sim <- c("DatesR", Outputs_all, "StateEnd") + Outputs_Sim <- Outputs_all } - Test <- which(!Outputs_Sim %in% c("DatesR", Outputs_all, "StateEnd")) + Test <- which(!Outputs_Sim %in% Outputs_all) if (length(Test) != 0) { stop(paste0( "'Outputs_Sim' is incorrectly defined: ", paste(Outputs_Sim[Test], collapse = ", "), " not found")) @@ -342,7 +318,7 @@ CreateRunOptions <- function(FUN_MOD, InputsModel, Outputs_Sim <- Outputs_Sim[!duplicated(Outputs_Sim)] - ##check_Outputs_Cal + ##check_Outputs_Cal if (is.null(Outputs_Cal)) { if ("GR" %in% ObjectClass) { Outputs_Cal <- c("Qsim") @@ -366,10 +342,9 @@ CreateRunOptions <- function(FUN_MOD, InputsModel, } } if ("all" %in% Outputs_Cal) { - Outputs_Cal <- c("DatesR", Outputs_all, "StateEnd") - + Outputs_Cal <- Outputs_all } - Test <- which(!Outputs_Cal %in% c("DatesR", Outputs_all, "StateEnd")) + Test <- which(!Outputs_Cal %in% Outputs_all) if (length(Test) != 0) { stop(paste0("'Outputs_Cal' is incorrectly defined: ", paste(Outputs_Cal[Test], collapse = ", "), " not found")) diff --git a/R/SeriesAggreg.OutputsModel.R b/R/SeriesAggreg.OutputsModel.R index 3bf0d8aefd24f930c4d6c0ba36fd9786d11e640f..d065182bab683414545511a75f78aa09e6f7c58d 100644 --- a/R/SeriesAggreg.OutputsModel.R +++ b/R/SeriesAggreg.OutputsModel.R @@ -2,6 +2,6 @@ SeriesAggreg.OutputsModel <- function(x, Format, ...) { SeriesAggreg.list(x, Format, ConvertFun = NA, - except = "StateEnd", + except = c("WarmUpQsim", "StateEnd"), ...) } diff --git a/R/UtilsRunModel.R b/R/UtilsRunModel.R index c5f861fb3789df1654d2b2fc9ce4da97efa0b064..b79809f68ce84cab3bdc3448376ed462497c1bba 100644 --- a/R/UtilsRunModel.R +++ b/R/UtilsRunModel.R @@ -18,15 +18,11 @@ IndPeriod2 <- (length(RunOptions$IndPeriod_WarmUp)+1):LInputSeries FortranOutputs <- RunOptions$FortranOutputs$GR - if ("all" %in% RunOptions$Outputs_Sim) { - IndOutputs <- as.integer(1:length(FortranOutputs)) - } else { - IndOutputs <- which(FortranOutputs %in% RunOptions$Outputs_Sim) - } + IndOutputs <- which(FortranOutputs %in% RunOptions$Outputs_Sim) OutputsModel <- list() - if("DatesR" %in% RunOptions$Outputs_Sim) { + if ("DatesR" %in% RunOptions$Outputs_Sim) { OutputsModel$DatesR <- InputsModel$DatesR[RunOptions$IndPeriod_Run] } @@ -36,11 +32,17 @@ OutputsModel <- c(OutputsModel, lapply(seqOutputs, function(i) RESULTS$Outputs[IndPeriod2, i])) - if(!is.null(CemaNeigeLayers)) { + if (!is.null(CemaNeigeLayers)) { OutputsModel$CemaNeigeLayers <- CemaNeigeLayers } - if("StateEnd" %in% RunOptions$Outputs_Sim) { + if ("WarmUpQsim" %in% RunOptions$Outputs_Sim) { + OutputsModel$WarmUpQsim <- RESULTS$Outputs[seq_len(length(RunOptions$IndPeriod_WarmUp)), + which(FortranOutputs == "Qsim")] + class(OutputsModel$WarmUpQsim) <- c("WarmUpOutputsModelItem", class(OutputsModel$WarmUpQsim)) + } + + if ("StateEnd" %in% RunOptions$Outputs_Sim) { OutputsModel$StateEnd <- RESULTS$StateEnd }