diff --git a/src/ZSOLVER/zsolver_inv.f90 b/src/ZSOLVER/zsolver_inv.f90
index afb02cd20ea787fa58c23ad6eb16c2a6ef7cad3f..29965951e8ee7546dad9e2e27d6f93e6a1cd3e1e 100644
--- a/src/ZSOLVER/zsolver_inv.f90
+++ b/src/ZSOLVER/zsolver_inv.f90
@@ -150,6 +150,9 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, &
   USE MODI_DOTPROD
   !
   USE mode_mg_main_mnh
+#ifdef MNH_OPENACC
+  USE MODE_MNH_ZWORK , ONLY : MNH_ALLOCATE_ZT3D , MNH_REL_ZT3D
+#endif
   !
   IMPLICIT NONE
   !
@@ -191,14 +194,10 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, &
   !
   !*       0.2   declaration of local variables
   !
-  REAL, DIMENSION(SIZE(PY,1),SIZE(PY,2),SIZE(PY,3)) :: ZY ! work array to store 
-  ! the RHS of the equation
-  !
-  !REAL, DIMENSION(SIZE(PY,1),SIZE(PY,2),SIZE(PY,3)) :: ZWORK ! work array used by 
-  ! the FFT. It has been enlarged in order to be sufficient for 2D and 3D cases
-  !
-  REAL, DIMENSION(SIZE(PBF,1),SIZE(PBF,2),SIZE(PBF,3)) :: ZAF ! work array to
-  !                                                        ! expand PAF
+  REAL, DIMENSION(:,:,:), pointer , contiguous :: ZY ! work array to store 
+  !                                                    the RHS of the equation
+  INTEGER :: IZY
+  !   
   INTEGER :: IIB          ! indice I for the first inner mass point along x
   INTEGER :: IIE          ! indice I for the last inner mass point along x
   INTEGER :: IJB          ! indice J for the first inner mass point along y
@@ -222,6 +221,11 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, &
   IKB=1+JPVEXT
   IKE=IKU - JPVEXT
   !
+#ifndef MNH_OPENACC
+  ALLOCATE(ZY(IIU,IJU,IKU))
+#else
+  IZY = MNH_ALLOCATE_ZT3D(ZY ,IIU,IJU,IKU )
+#endif
   !
   !-------------------------------------------------------------------------------
   !
@@ -312,6 +316,11 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, &
   !
   CALL PF_1_Y_BOUND(PF_1_Y)  
   !-------------------------------------------------------------------------------
+#ifndef MNH_OPENACC
+  DEALLOCATE(ZY)
+#else
+  CALL MNH_REL_ZT3D(IZY)
+#endif  
   !
 CONTAINS