diff --git a/exploration/scriptR/PatrickPrg.R b/exploration/scriptR/PatrickPrg.R
index 15fbd030b59be2432277ec2fc0070d346467e92d..e2c683f8fd86a27d1575375fa46eae6533683fdd 100644
--- a/exploration/scriptR/PatrickPrg.R
+++ b/exploration/scriptR/PatrickPrg.R
@@ -4,8 +4,8 @@ basins = read.csv("/home/patrick/Documents/workspace/GR3D/data/input/reality/bas
 tempData = read.csv("/home/patrick/Documents/workspace/GR3D/data/input/reality/SeasonTempBVFacAtlant1801_2100_newCRU_RCP85.csv", sep = ";")
 
 riverName = "Garonne"
-riverName = "Rhine"
-riverName = "Meuse"
+# riverName = "Rhine"
+# riverName = "Meuse"
 
 surfaceBasin = basins[basins$nomBV == riverName, 'surface']
 
@@ -50,11 +50,11 @@ temperatureEffect = function(tempWater, TminRep, ToptRep, TmaxRep){
   
 }
 
-thermalBevertonHolt = function(stock, temperature, juvenileTolerance, surface = 84810) {
+thermalBevertonHolt = function(stock, temperature, juvenileTolerance, surface = 84810, aFecundity = 135000) {
   survOptRep = 0.0017
   delta_t = 0.33
   lambda = 4.1E-4
-  a = 135000 # ~fecondité
+  #  a ~ fecondité
   tempEffect = temperatureEffect(temperature, juvenileTolerance[1], juvenileTolerance[2], juvenileTolerance[3] )
   b =  -log(survOptRep * tempEffect)/delta_t
   c = lambda/surface
@@ -69,17 +69,17 @@ thermalBevertonHolt = function(stock, temperature, juvenileTolerance, surface =
   
   alpha = (b * exp(-b * delta_t)) / (c * (1 - exp(-b * delta_t)))
   alpha[tempEffect == 0] = 0
-  beta = b / (a * c * (1 - exp(-b * delta_t)))
+  beta = b / (aFecundity * c * (1 - exp(-b * delta_t)))
   
   recruit = alpha * stock * AlleeEffect / (beta + stock * AlleeEffect)
   return(recruit)
 }
 
-stockAtCrash = function(temperature, juvenileTolerance, surface = 84810) {
+stockAtCrash = function(temperature, juvenileTolerance, surface = 84810, aFecundity = 135000) {
   survOptRep = 0.0017
   delta_t = 0.33
   lambda = 4.1E-4
-  a = 135000 # ~fecondité
+
   tempEffect = temperatureEffect(temperature, juvenileTolerance[1], juvenileTolerance[2], juvenileTolerance[3])
   b =  -log(survOptRep * tempEffect) / delta_t
   b[b == Inf] = 0
@@ -91,7 +91,7 @@ stockAtCrash = function(temperature, juvenileTolerance, surface = 84810) {
   S95 = eta * surface
   S50 = S95 / theta
   
-  beta = b / (a * c * (1 - exp(-b * delta_t)))
+  beta = b / (aFecundity * c * (1 - exp(-b * delta_t)))
   
   res = S50 + (S95 - S50) * log(beta * log(19) / (S95 - S50)) / log(19)
   res[is.nan(res)] = 0
@@ -99,18 +99,18 @@ stockAtCrash = function(temperature, juvenileTolerance, surface = 84810) {
 }
 
 
-thermalBevertonHoltWithoutAllee = function(stock, temperature, juvenileTolerance, surface = 84810)  {
+thermalBevertonHoltWithoutAllee = function(stock, temperature, juvenileTolerance, surface = 84810, aFecundity = 135000)   {
   survOptRep = 0.0017
   delta_t = 0.33
   lambda = 4.1E-4
-  a = 135000 # ~fecondité
+
   tempEffect = temperatureEffect(temperature, juvenileTolerance[1], juvenileTolerance[2], juvenileTolerance[3] )
   b =  -log(survOptRep * tempEffect)/delta_t
   c = lambda/surface
   
   alpha = (b * exp(-b * delta_t)) / (c * (1 - exp(-b * delta_t)))
   alpha[tempEffect == 0] = 0
-  beta = b / (a * c * (1 - exp(-b * delta_t)))
+  beta = b / (aFecundity * c * (1 - exp(-b * delta_t)))
   
   recruit = alpha * stock  / (beta + stock )
   return(recruit)
@@ -125,50 +125,53 @@ modifiedBevertonHolt = function(stock){
   return(alpha * (stock^d) / ((beta^d) + (stock^d)))
 }
 
-survivingRecruit = function(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface){
+survivingRecruit = function(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface, aFecundity){
   survStock = stock * temperatureEffect(temperature, spawnerTolerance[1], spawnerTolerance[2], spawnerTolerance[3])
-  recruit = thermalBevertonHolt(survStock, temperature, juvenileTolerance, surface)
+  recruit = thermalBevertonHolt(survStock, temperature, juvenileTolerance, surface, aFecundity)
   survRecruit =  recruit * exp(-sigmaZ)
   return(survRecruit)
 }
 
 
+spawnerTolerance = c(10, 20, 23) # Rougier 2014
+juvenileTolerance = c(9.8, 20, 26) # Rougier et al 2015
 
-spawnerTolerance = c(10, 20, 23)
-juvenileTolerance = c(9.8, 20, 26)
 
+# spawnerTolerance = c(10.7, 17, 25.7) #  spawning temperature range Paumier et al 2019
+# juvenileTolerance = c(10.8, 20.8, 29.8) #tolerance temperature range Jatteau 2017
+# 
 
-spawnerTolerance = c(10.7, 17, 25.7) #  spawning temperature range Paumier et al 2019
-juvenileTolerance = c(10.8, 20.8, 29.8) #tolerance temperature range Jatteau 2017
+spawnerTolerance = c(10.7, 17, 25.7) - 2  #  spawning temperature range Paumier et al 2019
+juvenileTolerance = c(10.8, 20.8, 29.8) - 2 #tolerance temperature range Jatteau 2017
 
-Tmin = 8
-spawnerTolerance = c(Tmin, 20, 23) 
-juvenileTolerance = c(Tmin, 16, 23) 
+# Tmin = 8
+# spawnerTolerance = c(Tmin, 20, 23) 
+# juvenileTolerance = c(Tmin, 16, 23) 
 
 sigmaZ = 0.4 * 5 # Z * lifespan of female
 propFemale = 0.5
-
+aFecundity = 185000
 # ================================ stock-recruitment relationship at 1900-1910 SPRING temperature ====
 
-ymax = 1e7
+ymax = 5e6
 S = seq(0, 1e6, 100)
 # with spawner mortality according to temperature
 survS = S * temperatureEffect(TrefInRiver$Spring, spawnerTolerance[1], spawnerTolerance[2], spawnerTolerance[3])
-plot(S, thermalBevertonHolt(survS, TrefInRiver$Spring, juvenileTolerance, surface = surfaceBasin), type = 'l',
-     xlab = 'Stock (female)', ylab = 'R (female and male)', ylim = c(0, ymax) )
-lines(S, thermalBevertonHolt(survS, TrefInRiver$Spring + 2, juvenileTolerance, surface = surfaceBasin), col = 'red')
-lines(S, thermalBevertonHolt(survS, TrefInRiver$Spring - 2, juvenileTolerance, surface = surfaceBasin), col = 'blue')
+plot(S, thermalBevertonHolt(survS, TrefInRiver$Spring, juvenileTolerance, surface = surfaceBasin, aFecundity) * propFemale, type = 'l',
+     xlab = 'Stock (female)', ylab = 'R (female)', ylim = c(0, ymax), main = riverName )
+lines(S, thermalBevertonHolt(survS, TrefInRiver$Spring + 1, juvenileTolerance, surface = surfaceBasin,  aFecundity) * propFemale, col = 'red')
+lines(S, thermalBevertonHolt(survS, TrefInRiver$Spring - 1, juvenileTolerance, surface = surfaceBasin,  aFecundity) * propFemale, col = 'blue')
 # replacement line with prop of female in recruit
-lines(c(0, ymax * exp(-sigmaZ) * propFemale), c(0, ymax), col = 'green', lty = 2)
+lines(c(0, ymax * exp(-sigmaZ)), c(0, ymax), col = 'green', lty = 2)
 
 
 # =============================== comparison with Rougier et al stock-recruitment relationship for the Garonne River ======
 
-tempe = TrefInRiver$Spring
-tempe = as.numeric(tempData %>%
-  filter(Year > 1991 & Year <= 2009 & NOM == riverName) %>%
-  summarize(meanSpring = mean(Spring), meanSummer = mean(summer)) )
-tempe = juvenileTolerance[2]
+#tempe = TrefInRiver$Spring
+#tempe = as.numeric(tempData %>%
+#  filter(Year > 1991 & Year <= 2009 & NOM == riverName) %>%
+#  summarize(meanSpring = mean(Spring), meanSummer = mean(summer)) )[1]
+#tempe = juvenileTolerance[2]
 tempe = 20.2 # Rougier 2014
 
 Stot = seq(0, 2e6, 1e4)
@@ -176,21 +179,21 @@ ymax = 1e7
 
 survS = Stot * temperatureEffect(tempe, spawnerTolerance[1], spawnerTolerance[2], spawnerTolerance[3])
 plot(Stot, thermalBevertonHolt(stock = survS * propFemale, temperature = tempe, juvenileTolerance = juvenileTolerance, 
-                               surface = surfaceBasin),
+                               surface = surfaceBasin, aFecundity = 135000),
      type = 'l', xlab = 'Total stock (2 x female)', ylab = 'R (female and male)', ylim = c(0, ymax) )
 # lines(Stot, thermalBevertonHolt(stock = survS, temperature = tempe, juvenileTolerance = juvenileTolerance, surface = surfaceBasin), lty = 3)
-lines(Stot, thermalBevertonHoltWithoutAllee(Stot * propFemale, tempe, juvenileTolerance,  surface = surfaceBasin), col = 'blue')
+lines(Stot, thermalBevertonHoltWithoutAllee(Stot * propFemale, tempe, juvenileTolerance,  surface = surfaceBasin, aFecundity = 135000), col = 'blue')
 ## lines(Stot, thermalBevertonHolt(Stot, tempe, juvenileTolerance), lty=2 )
 lines(Stot, modifiedBevertonHolt(Stot), col = 'green') # for the Garonne River
 # replacement line
 lines(c(0, ymax * exp(-sigmaZ)), c(0, ymax), col = 'green', lty = 2)
 
 # ===================================== stock at equilibrium =============================================================
-stocksAtEquilibrium = function(temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface, propFemale = 0.5) {
+stocksAtEquilibrium = function(temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface, propFemale = 0.5, aFecundity = 135000) {
 
    # !!!!! stock and recruit consider only females !!!!!!
-  objFct = function(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface){
-    survRecruit = survivingRecruit(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface) * propFemale 
+  objFct = function(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface, aFecundity){
+    survRecruit = survivingRecruit(stock, temperature, juvenileTolerance, spawnerTolerance, sigmaZ, surface, aFecundity) * propFemale 
     return((survRecruit - stock)^2)
   }
   
@@ -199,20 +202,20 @@ stocksAtEquilibrium = function(temperature, juvenileTolerance, spawnerTolerance,
   
   # stock at crash before the spawner mortality
   tempEffSpawner =  temperatureEffect(temperature, spawnerTolerance[1], spawnerTolerance[2], spawnerTolerance[3])
-  stockatcrash = ifelse(tempEffSpawner > 0, stockAtCrash(temperature, juvenileTolerance, surface) / tempEffSpawner, 0)
+  stockatcrash = ifelse(tempEffSpawner > 0, stockAtCrash(temperature, juvenileTolerance, surface, aFecundity) / tempEffSpawner, 0)
   
   
   if (stockatcrash > 0) {
     recruitatcrash = thermalBevertonHolt(stockatcrash * tempEffSpawner,
-                                         temperature, juvenileTolerance, surface) * propFemale 
+                                         temperature, juvenileTolerance, surface, aFecundity) * propFemale 
     sigmaZatcrash = -log(stockatcrash / recruitatcrash)
     
     if (sigmaZ < sigmaZatcrash) {
       stockattrap =  optimise(objFct, c(0,  stockatcrash), temperature = temperature, juvenileTolerance = juvenileTolerance, spawnerTolerance = spawnerTolerance, 
-                              sigmaZ = sigmaZ, surface = surface)$minimum
+                              sigmaZ = sigmaZ, surface = surface, aFecundity = aFecundity)$minimum
       
       stockatequilibrium = optimise(objFct, (c(1, 100) * stockatcrash), temperature = temperature, juvenileTolerance = juvenileTolerance, spawnerTolerance = spawnerTolerance, 
-                                      sigmaZ = sigmaZ, surface = surface)$minimum
+                                      sigmaZ = sigmaZ, surface = surface, aFecundity = aFecundity)$minimum
     }
   }
   
@@ -220,8 +223,8 @@ stocksAtEquilibrium = function(temperature, juvenileTolerance, spawnerTolerance,
 }
 
 temperature = seq(5,30,.1)
-
-stocks = as.data.frame(t(sapply(temperature, function(temp) (stocksAtEquilibrium(temp, juvenileTolerance, spawnerTolerance, sigmaZ, surface = surfaceBasin)))))
+aFecundity = 135000 * 2
+stocks = as.data.frame(t(sapply(temperature, function(temp) (stocksAtEquilibrium(temp, juvenileTolerance, spawnerTolerance, sigmaZ, surface = surfaceBasin, aFecundity = aFecundity)))))
 names(stocks) = c('atEquilibrium', 'atTrap', 'atCrash')
 stocks$temperature = temperature
 
@@ -235,12 +238,10 @@ max(stocks$temperature[stocks$atEquilibrium == 0 & stocks$temperature < 20])
 tempe = 14.4
 stocks[stocks$temperature == tempe, ]
 
-
-
 S = seq(0, 5e5, 1e3) # only females
 
 recruit = thermalBevertonHolt(S * temperatureEffect(tempe, spawnerTolerance[1], spawnerTolerance[2], spawnerTolerance[3]),
-                              temperature = tempe, juvenileTolerance = juvenileTolerance, surface = surfaceBasin) * propFemale
+                              temperature = tempe, juvenileTolerance = juvenileTolerance, surface = surfaceBasin, aFecundity = aFecundity ) * propFemale
 
 plot(S, recruit, type = 'l', xlab = 'Stock (# female)', ylab = 'Recruit (# of female)', main = paste(riverName, surfaceBasin))
 lines(c(0, max(recruit) * exp(-sigmaZ)), c(0, max(recruit)), col = 'green', lty = 2)
@@ -257,7 +258,7 @@ points(sAtCrash, thermalBevertonHolt(sAtCrash * temperatureEffect(tempe, spawner
                                     temperature = tempe, juvenileTolerance = juvenileTolerance, surface = surfaceBasin) * propFemale)
 
 
-# ==== recruitment according to temperature ===========================
+  # ==== recruitment according to temperature ===========================
 # but need to fix a reference stock !
 refStock = 1.5e6 / 2 # female !!!
 temperature = seq(5,30,.1)
diff --git a/exploration/scriptR/journVSsaison.R b/exploration/scriptR/journVSsaison.R
index 74692ad7a068a5b70cbc17845fe3dfd396df49a8..8b37a7d56f6b829332d8235c115f40d1cabf547b 100644
--- a/exploration/scriptR/journVSsaison.R
+++ b/exploration/scriptR/journVSsaison.R
@@ -64,7 +64,7 @@ plot(temperature, embryoSurvival * larvalSurvival, type = 'l')
 
 temperature = seq(5, 30,.1)
 duration = (parDurationIncubation[1] * temperature ^ parDurationIncubation[2]) 
-plot(temperature, duration, type ='l')
+plot(temperature, duration, type = 'l')
 
 # ==== observed data ========================================================================
 envGGD = read.csv("envCondition.csv", sep = ";")
@@ -77,11 +77,21 @@ repro = repro %>% mutate(dateC = as.character(date), date = as.Date(date)) %>% m
 elabData =   envGGD %>% left_join(select(repro, one_of(c("lien", "dateC", "Bulls", "BullsRelative"))), by = c("lien", "dateC")) %>% 
   filter(month %in% c('04', '05', '06'))
 
-myData = elabData %>% group_by(lien) %>% summarise(meanWaterTemp = mean(Temp1), meanSurvival = mean(juvenileSurvival, na.rm = TRUE))
+waterData = elabData %>% group_by(lien) %>% summarise(meanWaterTemp = mean(Temp1), meanSurvival = mean(juvenileSurvival, na.rm = TRUE))
 
 
 plot(elabData$Temp1, elabData$juvenileSurvival, pch = 20, col = "grey", xlim = c(10,30), ylim = c(0,1),
      xlab = 'water temperature', ylab = 'juvenile survival')
-points(myData$meanWaterTemp, myData$meanSurvival)
+points(waterData$meanWaterTemp, myData$meanSurvival)
 lines(temperature, embryoSurvival * larvalSurvival)
-       
\ No newline at end of file
+
+
+# ==== water temperature versus air temeprature
+load("dataSimulation3.rdata")
+
+airData = dataSimulation3 %>%  filter(model == "bcc-csm1-1-m") %>% filter(format(date, '%m') %in% c('04', '05', '06')) %>% group_by(lien) %>% summarize(meanAirTemp = mean(tempAir))
+
+ myData = waterData %>% left_join(airData, by = "lien")
+
+ plot(myData$meanWaterTemp, myData$meanAirTemp)
+summary(lm(meanAirTemp ~ meanWaterTemp, data = myData))