Index: LMDZ6/trunk/libf/phylmd/freinage.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/freinage.f90	(revision 5958)
+++ LMDZ6/trunk/libf/phylmd/freinage.f90	(revision 5959)
@@ -1,7 +1,12 @@
+MODULE freinage_mod
 !
 ! $Id$
 !
+
+CONTAINS
+
   SUBROUTINE freinage(klon, knon, uu, vv,  &
        tt,veget,lai, height,ypaprs,ypplay,drag_pro,d_u,d_v)
+!$gpum horizontal knon klon
 
     !ONLINE:
@@ -120,11 +125,22 @@
       enddo
      enddo 
+     
       do k=1,klev
-        where (sumveg(1:knon,k) > 0.05 ) 
-!        drag_pro(1:knon,k)=Cd_frein*drag_pro(1:knon,k)/sumveg(1:knon,k)
-        drag_pro(1:knon,k)=Cd_frein*drag_pro(1:knon,k)
-        elsewhere
-        drag_pro(1:knon,k)=0.0
-       endwhere
+
+!ym where are not correctly supported by gpumorphosis switch to LOOP, IF/ENDIF
+!ym         where (sumveg(1:knon,k) > 0.05 ) 
+!ym !        drag_pro(1:knon,k)=Cd_frein*drag_pro(1:knon,k)/sumveg(1:knon,k)
+!ym         drag_pro(1:knon,k)=Cd_frein*drag_pro(1:knon,k)
+!ym         elsewhere
+!ym         drag_pro(1:knon,k)=0.0
+!ym        endwhere
+
+        DO i=1,knon
+          IF (sumveg(i,k) > 0.05) THEN
+            drag_pro(i,k)=Cd_frein*drag_pro(i,k)
+          ELSE
+           drag_pro(i,k)=0.0
+          ENDIF
+        ENDDO
         d_u(1:knon,k) =(-1)*drag_pro(1:knon,k)*uu(1:knon,k)*wind(1:knon,k)
         d_v(1:knon,k) =(-1)*drag_pro(1:knon,k)*vv(1:knon,k)*wind(1:knon,k)
@@ -134,2 +150,4 @@
  END SUBROUTINE freinage
 
+END MODULE freinage_mod
+
Index: LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90	(revision 5958)
+++ LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90	(revision 5959)
@@ -2450,4 +2450,5 @@
     USE mod_phys_lmdz_para, ONLY : is_master
     USE cdrag_mod, ONLY : cdrag
+    USE freinage_mod, ONLY : freinage
 
 IMPLICIT NONE
