diff --git a/src/PHYEX/aux/gradient_m_phy.f90 b/src/PHYEX/aux/gradient_m_phy.f90
index 2b1636b6306e94862bb3086835ae484fd97d9c2a..348dea22e2e0f2301f5b7e15a5ad8dd6bb750b48 100644
--- a/src/PHYEX/aux/gradient_m_phy.f90
+++ b/src/PHYEX/aux/gradient_m_phy.f90
@@ -436,7 +436,7 @@ REAL, DIMENSION(D%NIT*D%NJT*D%NKT),  INTENT(IN)  :: PDZX    ! metric coefficient
 REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PGX_M_U  ! result at flux
                                                               ! side
 REAL, DIMENSION(D%NIT*D%NJT*D%NKT) :: ZGX_M_U
-REAL, DIMENSION(D%NIT,D%NJT,D%NKT):: ZY, ZDXX,ZDZZ,ZDZX
+REAL, DIMENSION(D%NIT,D%NJT,D%NKT):: ZY, ZDXX
 INTEGER  IIU,IKU,JI,JK,IKL, IKA
 !
 INTEGER :: JJK,IJU
@@ -456,6 +456,10 @@ IJU=D%NJT
 IKU=D%NKT
 IKL=D%NKL
 IKA=D%NKA
+!
+CALL D1D_TO_3D(D,PDXX,ZDXX)
+CALL D1D_TO_3D(D,PY,ZY)
+!
 IF (.NOT. OFLAT) THEN
   JIJKOR  = 1 + JPHEXT + IIU*IJU*(JPVEXT_TURB+1 - 1)
   JIJKEND = IIU*IJU*(IKU-JPVEXT_TURB)
@@ -479,26 +483,22 @@ IF (.NOT. OFLAT) THEN
        ) * PDZX(JIJKP1)* 0.25                                   &
         )  / PDXX(JIJK)
   END DO
-
+!
 CALL D1D_TO_3D(D,ZGX_M_U,PGX_M_U)
-CALL D1D_TO_3D(D,PDXX,ZDXX)
-CALL D1D_TO_3D(D,PDZZ,ZDZZ)
-CALL D1D_TO_3D(D,PDZX,ZDZX)
-CALL D1D_TO_3D(D,PY,ZY)
 !
   DO JI=1+JPHEXT,IIU
     PGX_M_U(JI,:,IKU)=  ( ZY(JI,:,IKU)-ZY(JI-1,:,IKU)  )  / ZDXX(JI,:,IKU)
     PGX_M_U(JI,:,IKA)=  -999.
   END DO
-!
-  PGX_M_U(1,:,:)=PGX_M_U(IIU-2*JPHEXT+1,:,:)
 ELSE
 !  PGX_M_U = DXM(PY) / PDXX
-  PGX_M_U(1+JPHEXT:IIU,:,:) = ( ZY(1+JPHEXT:IIU,:,:)-ZY(JPHEXT:IIU-1,:,:) ) &
-                             / ZDXX(1+JPHEXT:IIU,:,:)
+  PGX_M_U(1+1:IIU,:,:) = ( ZY(1+1:IIU,:,:)-ZY(1:IIU-1,:,:) ) &
+                             / ZDXX(1+1:IIU,:,:)
 !
-  PGX_M_U(1,:,:)=PGX_M_U(IIU-2*JPHEXT+1,:,:)
 ENDIF
+DO JI=1,JPHEXT
+  PGX_M_U(JI,:,:)=PGX_M_U(IIU-2*JPHEXT+JI,:,:) ! for reprod JPHEXT <> 1
+END DO  
 !
 !-------------------------------------------------------------------------------
 !
@@ -623,14 +623,15 @@ IF (.NOT. OFLAT) THEN
     PGY_M_V(:,JJ,IKA)=  -999.
   END DO
 !
-  PGY_M_V(:,1,:)=PGY_M_V(:,IJU-2*JPHEXT+1,:)
 ELSE
 !  PGY_M_V = DYM(PY)/PDYY
-  PGY_M_V(:,1+JPHEXT:IJU,:) = ( PY(:,1+JPHEXT:IJU,:)-PY(:,JPHEXT:IJU-1,:) ) &
-                               / PDYY(:,1+JPHEXT:IJU,:)
+  PGY_M_V(:,1+1:IJU,:) = ( PY(:,1+1:IJU,:)-PY(:,1:IJU-1,:) ) &
+                               / PDYY(:,1+1:IJU,:)
 !
-  PGY_M_V(:,1,:)=PGY_M_V(:,IJU-2*JPHEXT+1,:)
 ENDIF
+DO JJ=1,JPHEXT
+  PGY_M_V(:,JJ,:)=PGY_M_V(:,IJU-2*JPHEXT+JJ,:)
+END DO
 !
 !-------------------------------------------------------------------------------
 !