if(sum(!is.na(Param))!=NParam){stop(paste("Param must be a vector of length ",NParam," and contain no NA \n",sep=""));return(NULL);}
Param<-as.double(Param);
Param_X1X3_threshold<-1e-2
if(Param[1L]<Param_X1X3_threshold){
warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n New X1 value: %.2f",Param_X1X3_threshold,Param_X1X3_threshold))
Param[1L]<-Param_X1X3_threshold
Param_X1X3X6_threshold<-1e-2
if(Param[1L]<Param_X1X3X6_threshold){
warning(sprintf("Param[1] (X1: production store capacity [mm]) < %.2f\n New X1 value: %.2f",Param_X1X3X6_threshold,Param_X1X3X6_threshold))
Param[1L]<-Param_X1X3X6_threshold
}
if(Param[3L]<Param_X1X3_threshold){
warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n New X3 value: %.2f",Param_X1X3_threshold,Param_X1X3_threshold))
Param[3L]<-Param_X1X3_threshold
if(Param[3L]<Param_X1X3X6_threshold){
warning(sprintf("Param[3] (X3: routing store capacity [mm]) < %.2f\n New X3 value: %.2f",Param_X1X3X6_threshold,Param_X1X3X6_threshold))
Param[3L]<-Param_X1X3X6_threshold
}
if(Param[6L]<Param_X1X3X6_threshold){
warning(sprintf("Param[6] (X6: coefficient for emptying exponential store [mm]) < %.2f\n New X6 value: %.2f",Param_X1X3X6_threshold,Param_X1X3X6_threshold))