diff --git a/src/ZSOLVER/SURCOUCHE/mode_exchange2_ll.f90 b/src/ZSOLVER/SURCOUCHE/mode_exchange2_ll.f90
index 6d4a2c57504e2fdabecf613b4744446a489d37d3..8d2affca44ef628c6003ff27fbe700901b5bba7e 100644
--- a/src/ZSOLVER/SURCOUCHE/mode_exchange2_ll.f90
+++ b/src/ZSOLVER/SURCOUCHE/mode_exchange2_ll.f90
@@ -120,6 +120,8 @@ implicit none
 !
   TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
   INTEGER :: JJ ! loop counter
+
+  REAL , POINTER , CONTIGUOUS , DIMENSION(:,:) :: ZWEST,ZEAST,ZSOUTH,ZNORTH
 !
 !-------------------------------------------------------------------------------
 !
@@ -132,16 +134,26 @@ implicit none
 !
 !*       1.1   Allocate the current HALO2_ll
 !
-    ALLOCATE(TZHALO2LIST%HALO2) 
+     ALLOCATE(TZHALO2LIST%HALO2)
+     
     ALLOCATE(TZHALO2LIST%HALO2%WEST(KDIMY, KDIMZ))
     ALLOCATE(TZHALO2LIST%HALO2%EAST(KDIMY, KDIMZ))
     ALLOCATE(TZHALO2LIST%HALO2%SOUTH(KDIMX, KDIMZ))
     ALLOCATE(TZHALO2LIST%HALO2%NORTH(KDIMX, KDIMZ))
-    ALLOCATE(TZHALO2LIST%NEXT)
-    TZHALO2LIST%HALO2%WEST=0.
-    TZHALO2LIST%HALO2%EAST=0.
-    TZHALO2LIST%HALO2%SOUTH=0.
-    TZHALO2LIST%HALO2%NORTH=0.
+    ZWEST => TZHALO2LIST%HALO2%WEST
+    ZEAST => TZHALO2LIST%HALO2%EAST
+    ZSOUTH => TZHALO2LIST%HALO2%SOUTH
+    ZNORTH => TZHALO2LIST%HALO2%NORTH
+    !$acc enter data create(ZWEST,ZEAST,ZSOUTH,ZNORTH)
+    
+    !$acc kernels
+    ZWEST=0.
+    ZEAST=0.
+    ZSOUTH=0.
+    ZNORTH=0.
+    !$acc end kernels
+
+    ALLOCATE(TZHALO2LIST%NEXT)   
 !
 !*       1.2   Go to the next HALO2_ll, or terminate the list
 !