diff --git a/DESCRIPTION b/DESCRIPTION index 710d5d7d940073d0f26606497c49e82fa5d1bd6b..fbee2ad98be129eb751633b330a4c6820bb7399c 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.0.5.12 +Version: 1.0.5.13 Date: 2017-01-23 Authors@R: c( person("Laurent", "Coron", role = c("aut", "trl")), diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R index 57cae42cd27e22a452eb06ff8636924feb155aba..a0c20e6589186a331692485682efe4e958e3eb27 100644 --- a/R/CreateCalibOptions.R +++ b/R/CreateCalibOptions.R @@ -1,164 +1,324 @@ -CreateCalibOptions <- function(FUN_MOD, FUN_CALIB = Calibration_Michel, FUN_TRANSFO = NULL, FixedParam = NULL,SearchRanges = NULL, - StartParamList = NULL, StartParamDistrib = NULL){ - - - ObjectClass <- NULL; - - ##check_FUN_MOD - BOOL <- FALSE; - if(identical(FUN_MOD,RunModel_GR4H )){ ObjectClass <- c(ObjectClass,"GR4H" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_GR4J )){ ObjectClass <- c(ObjectClass,"GR4J" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_GR5J )){ ObjectClass <- c(ObjectClass,"GR5J" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_GR6J )){ ObjectClass <- c(ObjectClass,"GR6J" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_GR2M )){ ObjectClass <- c(ObjectClass,"GR2M" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_GR1A )){ ObjectClass <- c(ObjectClass,"GR1A" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_CemaNeige )){ ObjectClass <- c(ObjectClass,"CemaNeige" ); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_CemaNeigeGR4J)){ ObjectClass <- c(ObjectClass,"CemaNeigeGR4J"); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_CemaNeigeGR5J)){ ObjectClass <- c(ObjectClass,"CemaNeigeGR5J"); BOOL <- TRUE; } - if(identical(FUN_MOD,RunModel_CemaNeigeGR6J)){ ObjectClass <- c(ObjectClass,"CemaNeigeGR6J"); BOOL <- TRUE; } - if(!BOOL){ stop("incorrect FUN_MOD for use in CreateCalibOptions \n"); return(NULL); } - - ##check_FUN_CALIB - BOOL <- FALSE; - if(identical(FUN_CALIB,Calibration_Michel)){ ObjectClass <- c(ObjectClass,"HBAN" ); BOOL <- TRUE; } - if(!BOOL){ stop("incorrect FUN_CALIB for use in CreateCalibOptions \n"); return(NULL); } - - ##check_FUN_TRANSFO - if(is.null(FUN_TRANSFO)){ +CreateCalibOptions <- + function(FUN_MOD, + FUN_CALIB = Calibration_Michel, + FUN_TRANSFO = NULL, + FixedParam = NULL, + SearchRanges = NULL, + StartParamList = NULL, + StartParamDistrib = NULL) { + + ObjectClass <- NULL + + + ##check_FUN_MOD + BOOL <- FALSE + + if (identical(FUN_MOD, RunModel_GR4H)) { + ObjectClass <- c(ObjectClass, "GR4H") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_GR4J)) { + ObjectClass <- c(ObjectClass, "GR4J") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_GR5J)) { + ObjectClass <- c(ObjectClass, "GR5J") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_GR6J)) { + ObjectClass <- c(ObjectClass, "GR6J") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_GR2M)) { + ObjectClass <- c(ObjectClass, "GR2M") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_GR1A)) { + ObjectClass <- c(ObjectClass, "GR1A") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_CemaNeige)) { + ObjectClass <- c(ObjectClass, "CemaNeige") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_CemaNeigeGR4J)) { + ObjectClass <- c(ObjectClass, "CemaNeigeGR4J") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_CemaNeigeGR5J)) { + ObjectClass <- c(ObjectClass, "CemaNeigeGR5J") + BOOL <- TRUE + } + if (identical(FUN_MOD, RunModel_CemaNeigeGR6J)) { + ObjectClass <- c(ObjectClass, "CemaNeigeGR6J") + BOOL <- TRUE + } + if (!BOOL) { + stop("incorrect FUN_MOD for use in CreateCalibOptions \n") + return(NULL) + } + + ##check_FUN_CALIB + BOOL <- FALSE + + if (identical(FUN_CALIB, Calibration_Michel)) { + ObjectClass <- c(ObjectClass, "HBAN") + BOOL <- TRUE + } + if (!BOOL) { + stop("incorrect FUN_CALIB for use in CreateCalibOptions \n") + return(NULL) + + } + + ##check_FUN_TRANSFO + if (is.null(FUN_TRANSFO)) { ##_set_FUN1 - if(identical(FUN_MOD,RunModel_GR4H ) ){ FUN1 <- TransfoParam_GR4H ; } - if(identical(FUN_MOD,RunModel_GR4J ) | identical(FUN_MOD,RunModel_CemaNeigeGR4J) ){ FUN1 <- TransfoParam_GR4J ; } - if(identical(FUN_MOD,RunModel_GR5J ) | identical(FUN_MOD,RunModel_CemaNeigeGR5J) ){ FUN1 <- TransfoParam_GR5J ; } - if(identical(FUN_MOD,RunModel_GR6J ) | identical(FUN_MOD,RunModel_CemaNeigeGR6J) ){ FUN1 <- TransfoParam_GR6J ; } - if(identical(FUN_MOD,RunModel_GR2M ) ){ FUN1 <- TransfoParam_GR2M ; } - if(identical(FUN_MOD,RunModel_GR1A ) ){ FUN1 <- TransfoParam_GR1A ; } - if(identical(FUN_MOD,RunModel_CemaNeige) ){ FUN1 <- TransfoParam_CemaNeige; } - if(is.null(FUN1)){ stop("FUN1 was not found \n"); return(NULL); } + if (identical(FUN_MOD, RunModel_GR4H)) { + FUN1 <- TransfoParam_GR4H + } + if (identical(FUN_MOD, RunModel_GR4J) | + identical(FUN_MOD, RunModel_CemaNeigeGR4J)) { + FUN1 <- TransfoParam_GR4J + } + if (identical(FUN_MOD, RunModel_GR5J) | + identical(FUN_MOD, RunModel_CemaNeigeGR5J)) { + FUN1 <- TransfoParam_GR5J + } + if (identical(FUN_MOD, RunModel_GR6J) | + identical(FUN_MOD, RunModel_CemaNeigeGR6J)) { + FUN1 <- TransfoParam_GR6J + } + if (identical(FUN_MOD, RunModel_GR2M)) { + FUN1 <- TransfoParam_GR2M + } + if (identical(FUN_MOD, RunModel_GR1A)) { + FUN1 <- TransfoParam_GR1A + } + if (identical(FUN_MOD, RunModel_CemaNeige)) { + FUN1 <- TransfoParam_CemaNeige + } + if (is.null(FUN1)) { + stop("FUN1 was not found \n") + return(NULL) + } ##_set_FUN2 - FUN2 <- TransfoParam_CemaNeige; + FUN2 <- TransfoParam_CemaNeige + ##_set_FUN_TRANSFO - if(sum(ObjectClass %in% c("GR4H","GR4J","GR5J","GR6J","GR2M","GR1A","CemaNeige"))>0){ - FUN_TRANSFO <- FUN1; + if (sum(ObjectClass %in% c("GR4H", "GR4J", "GR5J", "GR6J", "GR2M", "GR1A", "CemaNeige")) > 0) { + FUN_TRANSFO <- FUN1 } else { - FUN_TRANSFO <- function(ParamIn,Direction){ - Bool <- is.matrix(ParamIn); - if(Bool==FALSE){ ParamIn <- rbind(ParamIn); } - ParamOut <- NA*ParamIn; - NParam <- ncol(ParamIn); - if(NParam <= 3){ - ParamOut[, 1:(NParam-2)] <- FUN1(cbind(ParamIn[,1:(NParam-2)]),Direction); + FUN_TRANSFO <- function(ParamIn, Direction) { + Bool <- is.matrix(ParamIn) + if (Bool == FALSE) { + ParamIn <- rbind(ParamIn) + } + ParamOut <- NA * ParamIn + NParam <- ncol(ParamIn) + if (NParam <= 3) { + ParamOut[, 1:(NParam - 2)] <- FUN1(cbind(ParamIn[, 1:(NParam - 2)]), Direction) } else { - ParamOut[, 1:(NParam-2)] <- FUN1(ParamIn[,1:(NParam-2) ],Direction); } - ParamOut[,(NParam-1):NParam ] <- FUN2(ParamIn[,(NParam-1):NParam],Direction); - if(Bool==FALSE){ ParamOut <- ParamOut[1,]; } - return(ParamOut); + ParamOut[, 1:(NParam - 2)] <- FUN1(ParamIn[, 1:(NParam - 2)], Direction) + } + ParamOut[, (NParam - 1):NParam] <- FUN2(ParamIn[, (NParam - 1):NParam], Direction) + if (Bool == FALSE) { + ParamOut <- ParamOut[1, ] + } + return(ParamOut) } } } - if(is.null(FUN_TRANSFO)){ stop("FUN_TRANSFO was not found \n"); return(NULL); } - - ##NParam - if("GR4H" %in% ObjectClass){ NParam <- 4; } - if("GR4J" %in% ObjectClass){ NParam <- 4; } - if("GR5J" %in% ObjectClass){ NParam <- 5; } - if("GR6J" %in% ObjectClass){ NParam <- 6; } - if("GR2M" %in% ObjectClass){ NParam <- 2; } - if("GR1A" %in% ObjectClass){ NParam <- 1; } - if("CemaNeige" %in% ObjectClass){ NParam <- 2; } - if("CemaNeigeGR4J" %in% ObjectClass){ NParam <- 6; } - if("CemaNeigeGR5J" %in% ObjectClass){ NParam <- 7; } - if("CemaNeigeGR6J" %in% ObjectClass){ NParam <- 8; } - - - ##check_FixedParam - if(is.null(FixedParam)){ - FixedParam <- rep(NA,NParam); + if (is.null(FUN_TRANSFO)) { + stop("FUN_TRANSFO was not found \n") + return(NULL) + } + + ##NParam + if ("GR4H" %in% ObjectClass) { + NParam <- 4 + } + if ("GR4J" %in% ObjectClass) { + NParam <- 4 + } + if ("GR5J" %in% ObjectClass) { + NParam <- 5 + } + if ("GR6J" %in% ObjectClass) { + NParam <- 6 + } + if ("GR2M" %in% ObjectClass) { + NParam <- 2 + } + if ("GR1A" %in% ObjectClass) { + NParam <- 1 + } + if ("CemaNeige" %in% ObjectClass) { + NParam <- 2 + } + if ("CemaNeigeGR4J" %in% ObjectClass) { + NParam <- 6 + } + if ("CemaNeigeGR5J" %in% ObjectClass) { + NParam <- 7 + } + if ("CemaNeigeGR6J" %in% ObjectClass) { + NParam <- 8 + } + + ##check_FixedParam + if (is.null(FixedParam)) { + FixedParam <- rep(NA, NParam) } else { - if(!is.vector(FixedParam) ){ stop("FixedParam must be a vector \n"); return(NULL); } - if(length(FixedParam)!=NParam ){ stop("Incompatibility between FixedParam length and FUN_MOD \n"); return(NULL); } - } - - ##check_SearchRanges - if(is.null(SearchRanges)){ - ParamT <- matrix(c(rep(-9.99,NParam),rep(+9.99,NParam)),ncol=NParam,byrow=TRUE); - SearchRanges <- TransfoParam(ParamIn=ParamT,Direction="TR",FUN_TRANSFO=FUN_TRANSFO); + if (!is.vector(FixedParam)) { + stop("FixedParam must be a vector \n") + return(NULL) + } + if (length(FixedParam) != NParam) { + stop("Incompatibility between FixedParam length and FUN_MOD \n") + return(NULL) + } + } + + ##check_SearchRanges + if (is.null(SearchRanges)) { + ParamT <- matrix(c(rep(-9.99, NParam), rep(+9.99, NParam)), + ncol = NParam, byrow = TRUE) + + SearchRanges <- TransfoParam(ParamIn = ParamT, Direction = "TR", FUN_TRANSFO = FUN_TRANSFO) + } else { - if(!is.matrix( SearchRanges) ){ stop("SearchRanges must be a matrix \n"); return(NULL); } - if(!is.numeric(SearchRanges) ){ stop("SearchRanges must be a matrix of numeric values \n"); return(NULL); } - if(sum(is.na(SearchRanges))!=0){ stop("SearchRanges must not include NA values \n"); return(NULL); } - if(nrow(SearchRanges)!=2 ){ stop("SearchRanges must have 2 rows \n"); return(NULL); } - if(ncol(SearchRanges)!=NParam ){ stop("Incompatibility between SearchRanges ncol and FUN_MOD \n"); return(NULL); } - } - - ##check_StartParamList_and_StartParamDistrib__default_values - if( ("HBAN" %in% ObjectClass & is.null(StartParamList) & is.null(StartParamDistrib)) ){ - - if("GR4H"%in% ObjectClass){ - ParamT <- matrix( c( +5.12, -1.18, +4.34, -9.69, - +5.58, -0.85, +4.74, -9.47, - +6.01, -0.50, +5.14, -8.87),ncol=NParam,byrow=TRUE); } - if("GR4J"%in% ObjectClass){ - ParamT <- matrix( c( +5.13, -1.60, +3.03, -9.05, - +5.51, -0.61, +3.74, -8.51, - +6.07, -0.02, +4.42, -8.06),ncol=NParam,byrow=TRUE); } - if("GR5J"%in% ObjectClass){ - ParamT <- matrix( c( +5.17, -1.13, +3.08, -9.37, -7.45, - +5.55, -0.46, +3.75, -9.09, -4.69, - +6.10, -0.11, +4.43, -8.60, -0.66),ncol=NParam,byrow=TRUE); } - if("GR6J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.00, +3.30, -9.10, -0.90, +3.00, - +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, - +4.50, +0.50, +5.00, -8.10, +1.10, +5.00),ncol=NParam,byrow=TRUE); } - if("GR2M"%in% ObjectClass){ - ParamT <- matrix( c( +5.03, -7.15, - +5.22, -6.74, - +5.85, -6.37),ncol=NParam,byrow=TRUE); } - if("GR1A"%in% ObjectClass){ - ParamT <- matrix( c( -1.69, - -0.38, - +1.39),ncol=NParam,byrow=TRUE); } - if("CemaNeige"%in% ObjectClass){ - ParamT <- matrix( c( -9.96, +6.63, - -9.14, +6.90, - +4.10, +7.21),ncol=NParam,byrow=TRUE); } - if("CemaNeigeGR4J"%in% ObjectClass){ - ParamT <- matrix( c( +5.13, -1.60, +3.03, -9.05, -9.96, +6.63, - +5.51, -0.61, +3.74, -8.51, -9.14, +6.90, - +6.07, -0.02, +4.42, -8.06, +4.10, +7.21),ncol=NParam,byrow=TRUE); } - if("CemaNeigeGR5J"%in% ObjectClass){ - ParamT <- matrix( c( +5.17, -1.13, +3.08, -9.37, -7.45, -9.96, +6.63, - +5.55, -0.46, +3.75, -9.09, -4.69, -9.14, +6.90, - +6.10, -0.11, +4.43, -8.60, -0.66, +4.10, +7.21),ncol=NParam,byrow=TRUE); } - if("CemaNeigeGR6J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.00, +3.30, -9.10, -0.90, +3.00, -9.96, +6.63, - +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, -9.14, +6.90, - +4.50, +0.50, +5.00, -8.10, +1.10, +5.00, +4.10, +7.21),ncol=NParam,byrow=TRUE); } - - StartParamList <- NULL; - StartParamDistrib <- TransfoParam(ParamIn=ParamT,Direction="TR",FUN_TRANSFO=FUN_TRANSFO); - } - - ##check_StartParamList_and_StartParamDistrib__format - if("HBAN" %in% ObjectClass & !is.null(StartParamList)){ - if(!is.matrix( StartParamList) ){ stop("StartParamList must be a matrix \n"); return(NULL); } - if(!is.numeric(StartParamList) ){ stop("StartParamList must be a matrix of numeric values \n"); return(NULL); } - if(sum(is.na(StartParamList))!=0){ stop("StartParamList must not include NA values \n"); return(NULL); } - if(ncol(StartParamList)!=NParam ){ stop("Incompatibility between StartParamList ncol and FUN_MOD \n"); return(NULL); } - } - if("HBAN" %in% ObjectClass & !is.null(StartParamDistrib)){ - if(!is.matrix( StartParamDistrib) ){ stop("StartParamDistrib must be a matrix \n"); return(NULL); } - if(!is.numeric(StartParamDistrib[1,]) ){ stop("StartParamDistrib must be a matrix of numeric values \n"); return(NULL); } - if(sum(is.na(StartParamDistrib[1,]))!=0){ stop("StartParamDistrib must not include NA values on the first line \n"); return(NULL); } - if(ncol(StartParamDistrib)!=NParam ){ stop("Incompatibility between StartParamDistrib ncol and FUN_MOD \n"); return(NULL); } - } - - - ##Create_CalibOptions - CalibOptions <- list(FixedParam=FixedParam,SearchRanges=SearchRanges); - if(!is.null(StartParamList )){ CalibOptions <- c(CalibOptions,list(StartParamList=StartParamList)); } - if(!is.null(StartParamDistrib)){ CalibOptions <- c(CalibOptions,list(StartParamDistrib=StartParamDistrib)); } - class(CalibOptions) <- c("CalibOptions",ObjectClass); - return(CalibOptions); - - -} + if (!is.matrix(SearchRanges)) { + stop("SearchRanges must be a matrix \n") + return(NULL) + } + if (!is.numeric(SearchRanges)) { + stop("SearchRanges must be a matrix of numeric values \n") + return(NULL) + } + if (sum(is.na(SearchRanges)) != 0) { + stop("SearchRanges must not include NA values \n") + return(NULL) + } + if (nrow(SearchRanges) != 2) { + stop("SearchRanges must have 2 rows \n") + return(NULL) + } + if (ncol(SearchRanges) != NParam) { + stop("Incompatibility between SearchRanges ncol and FUN_MOD \n") + return(NULL) + } + } + + ##check_StartParamList_and_StartParamDistrib__default_values + if (("HBAN" %in% ObjectClass & is.null(StartParamList) & is.null(StartParamDistrib))) { + if ("GR4H" %in% ObjectClass) { + ParamT <- matrix(c(+5.12, -1.18, +4.34, -9.69, + +5.58, -0.85, +4.74, -9.47, + +6.01, -0.50, +5.14, -8.87), ncol = NParam, byrow = TRUE) + } + if ("GR4J" %in% ObjectClass) { + ParamT <- matrix(c(+5.13, -1.60, +3.03, -9.05, + +5.51, -0.61, +3.74, -8.51, + +6.07, -0.02, +4.42, -8.06), ncol = NParam, byrow = TRUE) + } + if ("GR5J" %in% ObjectClass) { + ParamT <- matrix(c(+5.17, -1.13, +3.08, -9.37, -7.45, + +5.55, -0.46, +3.75, -9.09, -4.69, + +6.10, -0.11, +4.43, -8.60, -0.66), ncol = NParam, byrow = TRUE) + + } + if ("GR6J" %in% ObjectClass) { + ParamT <- matrix(c(+3.60, -1.00, +3.30, -9.10, -0.90, +3.00, + +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, + +4.50, +0.50, +5.00, -8.10, +1.10, +5.00), ncol = NParam, byrow = TRUE) + } + if ("GR2M" %in% ObjectClass) { + ParamT <- matrix(c(+5.03, -7.15, + +5.22, -6.74, + +5.85, -6.37), ncol = NParam, byrow = TRUE) + } + if ("GR1A" %in% ObjectClass) { + ParamT <- matrix(c(-1.69, + -0.38, + +1.39), ncol = NParam, byrow = TRUE) + } + if ("CemaNeige" %in% ObjectClass) { + ParamT <- matrix(c(-9.96, +6.63, + -9.14, +6.90, + +4.10, +7.21), ncol = NParam, byrow = TRUE) + } + if ("CemaNeigeGR4J" %in% ObjectClass) { + ParamT <- matrix(c(+5.13, -1.60, +3.03, -9.05, -9.96, +6.63, + +5.51, -0.61, +3.74, -8.51, -9.14, +6.90, + +6.07, -0.02, +4.42, -8.06, +4.10, +7.21), ncol = NParam, byrow = TRUE) + } + if ("CemaNeigeGR5J" %in% ObjectClass) { + ParamT <- matrix(c(+5.17, -1.13, +3.08, -9.37, -7.45, -9.96, +6.63, + +5.55, -0.46, +3.75, -9.09, -4.69, -9.14, +6.90, + +6.10, -0.11, +4.43, -8.60, -0.66, +4.10, +7.21), ncol = NParam, byrow = TRUE) + } + if ("CemaNeigeGR6J" %in% ObjectClass) { + ParamT <- matrix(c(+3.60, -1.00, +3.30, -9.10, -0.90, +3.00, -9.96, +6.63, + +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, -9.14, +6.90, + +4.50, +0.50, +5.00, -8.10, +1.10, +5.00, +4.10, +7.21), ncol = NParam, byrow = TRUE) + } + + StartParamList <- NULL + StartParamDistrib <- TransfoParam(ParamIn = ParamT, Direction = "TR", FUN_TRANSFO = FUN_TRANSFO) + + } + + ##check_StartParamList_and_StartParamDistrib__format + if ("HBAN" %in% ObjectClass & !is.null(StartParamList)) { + if (!is.matrix(StartParamList)) { + stop("StartParamList must be a matrix \n") + return(NULL) + } + if (!is.numeric(StartParamList)) { + stop("StartParamList must be a matrix of numeric values \n") + return(NULL) + } + if (sum(is.na(StartParamList)) != 0) { + stop("StartParamList must not include NA values \n") + return(NULL) + } + if (ncol(StartParamList) != NParam) { + stop("Incompatibility between StartParamList ncol and FUN_MOD \n") + return(NULL) + } + } + if ("HBAN" %in% ObjectClass & !is.null(StartParamDistrib)) { + if (!is.matrix(StartParamDistrib)) { + stop("StartParamDistrib must be a matrix \n") + return(NULL) + } + if (!is.numeric(StartParamDistrib[1, ])) { + stop("StartParamDistrib must be a matrix of numeric values \n") + return(NULL) + } + if (sum(is.na(StartParamDistrib[1, ])) != 0) { + stop("StartParamDistrib must not include NA values on the first line \n") + return(NULL) + } + if (ncol(StartParamDistrib) != NParam) { + stop("Incompatibility between StartParamDistrib ncol and FUN_MOD \n") + return(NULL) + } + } + + + ##Create_CalibOptions + CalibOptions <- list(FixedParam = FixedParam, SearchRanges = SearchRanges) + + if (!is.null(StartParamList)) { + CalibOptions <- c(CalibOptions, list(StartParamList = StartParamList)) + } + if (!is.null(StartParamDistrib)) { + CalibOptions <- c(CalibOptions, list(StartParamDistrib = StartParamDistrib)) + } + class(CalibOptions) <- c("CalibOptions", ObjectClass) + + return(CalibOptions) + + }