diff --git a/DESCRIPTION b/DESCRIPTION
index 45edba669ab436d201bb2512ad0ae461e8bdaa5e..a5887f836a6c46840583e97843a672d5cde10d69 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.4.4
+Version: 1.0.5.0
 Date: 2017-01-18
 Authors@R: c(
   person("Laurent", "Coron", role = c("aut", "trl")),
diff --git a/R/DataAltiExtrapolation_Valery.R b/R/DataAltiExtrapolation_Valery.R
index 2882efc713676f135d5b232941eacdf20c6edd08..ff079ab23804344b5027af2704ffd2118a360d6a 100644
--- a/R/DataAltiExtrapolation_Valery.R
+++ b/R/DataAltiExtrapolation_Valery.R
@@ -434,24 +434,21 @@ DataAltiExtrapolation_Valery <- function(DatesR,Precip,TempMean,TempMin=NULL,Tem
     ##Temperature_extrapolation____________________________________________________________________
       ##Initialisation
       LayerTempMean <- list(); LayerTempMin <- list(); LayerTempMax <- list();
-      if(identical(ZInputs,HypsoData[51]) & NLayers==1){
+      if(identical(ZInputs,HypsoData[51]) & NLayers==1) {
         LayerTempMean[[1]] <- as.double(TempMean);
         if(!is.null(TempMin) & !is.null(TempMax)){ LayerTempMin[[1]] <- as.double(TempMin); LayerTempMax[[1]] <- as.double(TempMax); }
       } else {
       ##Elevation_gradients_for_daily_mean_min_and_max_temperature
-        GradT    <- GradT_Valery2010(); ### Day, Month, GradTmean, GradTmin and GradTmax for iCol=1,2,3,4,5, respectively
-        TabGradT <- matrix(NA,nrow=length(Precip),ncol=3);
-        for(iday in 1:366){
-          ind <- which(as.numeric(format(DatesR,format="%d"))==GradT[iday,1] & as.numeric(format(DatesR,format="%m"))==GradT[iday,2]);
-          TabGradT[ind,1:3] <- GradT[iday,3:5];
-        }
+        GradT <- as.data.frame(GradT_Valery2010())
+        iday <- match(format(DatesR,format="%d%m"), sprintf("%02i%02i", GradT[, "day"], GradT[, "month"]))
+        TabGradT <- GradT[iday, c("grad_Tmean", "grad_Tmin", "grad_Tmax")]
       ##Extrapolation
         ##On_each_elevation_layer...
         for(iLayer in 1:NLayers){
-          LayerTempMean[[iLayer]] <- as.double(TempMean + (ZInputs-ZLayers[iLayer])*abs(TabGradT[,1])/100);
+          LayerTempMean[[iLayer]] <- as.double(TempMean + (ZInputs-ZLayers[iLayer])*abs(TabGradT[, "grad_Tmean"])/100);
           if(!is.null(TempMin) & !is.null(TempMax)){
-          LayerTempMin[[iLayer]]  <- as.double(TempMin  + (ZInputs-ZLayers[iLayer])*abs(TabGradT[,2])/100);
-          LayerTempMax[[iLayer]]  <- as.double(TempMax  + (ZInputs-ZLayers[iLayer])*abs(TabGradT[,3])/100);
+          LayerTempMin[[iLayer]]  <- as.double(TempMin  + (ZInputs-ZLayers[iLayer])*abs(TabGradT[, "grad_Tmin"])/100);
+          LayerTempMax[[iLayer]]  <- as.double(TempMax  + (ZInputs-ZLayers[iLayer])*abs(TabGradT[, "grad_Tmax"])/100);
           }
         }
       }