diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
index 5356753d1f0ee3372c4e6ee9e517e71af10267dc..28b3d7cbbb229b182a0f30d753e5def5ab16b47e 100644
--- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90
+++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
@@ -1164,7 +1164,8 @@ MODULE MODE_MPPDB
     REAL                                                   :: ZPRECISION
     REAL,DIMENSION(NMAXPAS)                                :: MAX_DIFF, MAX_VAL
     REAL,DIMENSION(SIZE(PTAB,1),SIZE(PTAB,2),SIZE(PTAB,3)) :: ZTAB
-    REAL,DIMENSION(:,:,:),ALLOCATABLE,TARGET               :: TAB_ll,TAB_SON_ll
+    REAL,DIMENSION(:,:,:,:),ALLOCATABLE,TARGET             :: TAB_ll
+    REAL,DIMENSION(:,:,:),ALLOCATABLE,TARGET               :: TAB_SON_ll
 
 #ifdef MNH_SP4
     !pas de mpi_spawn sur IBM-SP ni MPI_ARGV_NULL etc ...
@@ -1227,8 +1228,8 @@ MODULE MODE_MPPDB
           IIU_ll = IIMAX_ll+2*JPHEXT
           IJU_ll = IJMAX_ll+2*JPHEXT
           IKU_ll = SIZE(PTAB,3)
-          IF (.NOT. ALLOCATED(TAB_ll))      ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll))
-          CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll,IINFO_ll)
+          IF (.NOT. ALLOCATED(TAB_ll))      ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll,NPAS_ll))
+          CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll(:,:,:,IPAS),IINFO_ll)
 
           IF (MPPDB_IRANK_WORLD.EQ.0) THEN
              !
@@ -1255,18 +1256,18 @@ MODULE MODE_MPPDB
              CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MNHREAL_MPI,I_FIRST_SON, &
                   NTAG,MPPDB_INTRA_COMM,MPI_STATUS_IGNORE,IINFO_ll)
              !
-             TAB_ll      = ABS ( TAB_ll - TAB_SON_ll )
+             TAB_ll(:,:,:,IPAS)      = ABS ( TAB_ll(:,:,:,IPAS) - TAB_SON_ll(:,:,:) )
              !
              ! Set corners values to zero if we want to check the halos without the corners
              IF ( MPPDB_CHECK_LB .AND. .NOT.MPPDB_CHECK_LB_CORNERS ) THEN
-                TAB_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll) = 0d0
-                TAB_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll) = 0d0
-                TAB_ll(1:JPHEXT,             IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
-                TAB_ll(1:JPHEXT,             IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
-                TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT,             1:IKU_ll) = 0d0
-                TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT,             1:IKU_ll) = 0d0
-                TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
-                TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
+                TAB_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll,IPAS) = 0d0
+                TAB_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll,IPAS) = 0d0
+                TAB_ll(1:JPHEXT,             IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
+                TAB_ll(1:JPHEXT,             IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
+                TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT,             1:IKU_ll,IPAS) = 0d0
+                TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT,             1:IKU_ll,IPAS) = 0d0
+                TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
+                TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
                 TAB_SON_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll) = 0d0
                 TAB_SON_ll(1:JPHEXT,             1:JPHEXT,             1:IKU_ll) = 0d0
                 TAB_SON_ll(1:JPHEXT,             IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
@@ -1290,7 +1291,7 @@ MODULE MODE_MPPDB
 
              MAX_VAL(IPAS)  = MAXVAL( ABS (TAB_SON_ll(IIB_SON_ll-IDIFF_HEXT:IIE_SON_ll+IDIFF_HEXT,&
                                                    IJB_SON_ll-IDIFF_HEXT:IJE_SON_ll+IDIFF_HEXT,1:IKU_SON_ll) ) )
-             MAX_DIFF(IPAS) = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IJB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll))
+             MAX_DIFF(IPAS) = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IJB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll,IPAS))
              !
              IF ( MAX_VAL(IPAS) .EQ. 0.0 ) THEN
                ZDIV=1.0
@@ -1317,8 +1318,8 @@ MODULE MODE_MPPDB
           IIU_ll = IIMAX_ll+2*JPHEXT
           IJU_ll = IJMAX_ll+2*JPHEXT
           IKU_ll = SIZE(PTAB,3)
-          IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll))
-          CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll,IINFO_ll)
+          IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll,NPAS_ll))
+          CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll(:,:,:,IPAS),IINFO_ll)
           !
           ! SON WORLD
           !
@@ -1331,7 +1332,7 @@ MODULE MODE_MPPDB
              CALL MPI_BSEND(IHEXT_SON_ll,1,MNHINT_MPI,I_FIRST_FATHER, &
                   NTAG, MPPDB_INTRA_COMM, IINFO_ll)
 
-             CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MNHREAL_MPI,I_FIRST_FATHER, &
+             CALL MPI_BSEND(TAB_ll(:,:,:,IPAS),SIZE(TAB_ll(:,:,:,IPAS)),MNHREAL_MPI,I_FIRST_FATHER, &
                   NTAG, MPPDB_INTRA_COMM, IINFO_ll)
           END IF
        END IF