Index: LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90	(revision 2895)
+++ LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90	(revision 2896)
@@ -37,4 +37,7 @@
   !$OMP THREADPRIVATE(ftsoil)
 
+  integer, save :: iflag_pbl_surface_t2m_bug
+  !$OMP THREADPRIVATE(iflag_pbl_surface_t2m_bug)
+
 CONTAINS
 !
@@ -131,4 +134,7 @@
        CALL abort_physic(modname,abort_message,1)
     ENDIF
+
+    iflag_pbl_surface_t2m_bug=0
+    CALL getin_p('iflag_pbl_surface_t2m_bug',iflag_pbl_surface_t2m_bug)
 
   END SUBROUTINE pbl_surface_init
@@ -516,5 +522,5 @@
     REAL, DIMENSION(klon)              :: psfce, patm
     REAL, DIMENSION(klon)              :: qairsol, zgeo1, speed, zri1, pref !speed, zri1, pref, added by Fuxing WANG, 04/03/2015
-    REAL, DIMENSION(klon)              :: rugo1
+    REAL, DIMENSION(klon)              :: yz0h_oupas
     REAL, DIMENSION(klon)              :: yfluxsens
     REAL, DIMENSION(klon)              :: AcoefH, AcoefQ, BcoefH, BcoefQ
@@ -2483,12 +2489,18 @@
 !!!
        DO j=1, knon
-          i = ni(j)
-          rugo1(j) = yz0m(j)
-          IF(nsrf.EQ.is_oce) THEN
-             rugo1(j) = z0m(i,nsrf)
-          ENDIF
+!         i = ni(j)
+!         yz0h_oupas(j) = yz0m(j)
+!         IF(nsrf.EQ.is_oce) THEN
+!            yz0h_oupas(j) = z0m(i,nsrf)
+!         ENDIF
           psfce(j)=ypaprs(j,1)
           patm(j)=ypplay(j,1)
        END DO
+
+       IF (iflag_pbl_surface_t2m_bug==1) THEN
+          yz0h_oupas(1:knon)=yz0m(1:knon)
+       ELSE
+          yz0h_oupas(1:knon)=yz0h(1:knon)
+       ENDIF
        
 !      print*,'Dans pbl OK42A'
@@ -2496,19 +2508,19 @@
 !      print*, tair1,yt(:,1),y_d_t(:,1)
 
-! Calculate the temperature et relative humidity at 2m and the wind at 10m 
+! Calculate the temperatureflag_pbl_surface_t2m_bugiflag_pbl_surface_t2m_bug et relative humidity at 2m and the wind at 10m 
 !!! jyg le 07/02/2012
        IF (iflag_split .eq.0) THEN
         CALL stdlevvar(klon, knon, nsrf, zxli, &
             uzon, vmer, tair1, qair1, zgeo1, &
-            tairsol, qairsol, rugo1, rugo1, psfce, patm, &
+            tairsol, qairsol, yz0m, yz0h_oupas, psfce, patm, &
             yt2m, yq2m, yt10m, yq10m, yu10m, yustar)
        ELSE  !(iflag_split .eq.0)
         CALL stdlevvar(klon, knon, nsrf, zxli, &
             uzon_x, vmer_x, tair1_x, qair1_x, zgeo1_x, &
-            tairsol_x, qairsol, rugo1, rugo1, psfce, patm, &
+            tairsol_x, qairsol, yz0m, yz0h_oupas, psfce, patm, &
             yt2m_x, yq2m_x, yt10m_x, yq10m_x, yu10m_x, yustar_x)
         CALL stdlevvar(klon, knon, nsrf, zxli, &
             uzon_w, vmer_w, tair1_w, qair1_w, zgeo1_w, &
-            tairsol_w, qairsol, rugo1, rugo1, psfce, patm, &
+            tairsol_w, qairsol, yz0m, yz0h_oupas, psfce, patm, &
             yt2m_w, yq2m_w, yt10m_w, yq10m_w, yu10m_w, yustar_w)
 !!!
