diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index 7f2dc537c941636f16367c67f897202b472d3487..13844bb3bbc98f6590b27183cfbe3b26a9166e64 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -344,7 +344,7 @@ USE MODE_PRANDTL
 USE MODI_SECOND_MNH
 !
 #ifdef MNH_OPENACC
-USE  MODE_MNH_ZWORK, ONLY : MNH_ALLOCATE_ZT3D , MNH_REL_ZT3D
+USE  MODE_MNH_ZWORK, ONLY : MNH_ALLOCATE_ZT3D , MNH_REL_ZT3D, MNH_ALLOCATE_ZT4D , MNH_REL_ZT4D
 #endif
 !
 IMPLICIT NONE
@@ -464,11 +464,12 @@ INTEGER :: izbeta,izsqrt_tke,izdth_dz,izdr_dz,izred2th3,izred2r3,izred2thr3, &
            izbll_o_e,izetheta,izemoist,izredth1,izredr1,izphi3,izpsi3, &
            izd,izwthv,izwu,izwv,izthlp,izrp
 
-REAL, DIMENSION(:,:,:,:), allocatable ::  &
+REAL, DIMENSION(:,:,:,:), pointer , contiguous ::  &
        ZPSI_SV,  & ! Prandtl number for scalars
        ZREDS1,   & ! 1D Redeslperger number R_sv
        ZRED2THS, & ! 3D Redeslperger number R*2_thsv
        ZRED2RS     ! 3D Redeslperger number R*2_rsv
+INTEGER :: IZPSI_SV,IZREDS1,IZRED2THS,IZRED2RS
 !
 LOGICAL :: GUSERV    ! flag to use water vapor
 INTEGER :: IKB,IKE   ! index value for the Beginning
@@ -601,15 +602,22 @@ izthlp     = MNH_ALLOCATE_ZT3D( zthlp    ,JIU,JJU,JKU )
 izrp       = MNH_ALLOCATE_ZT3D( zrp      ,JIU,JJU,JKU )
 #endif
 
-allocate( zpsi_sv (size( pthlm, 1 ), size( pthlm, 2 ), size( pthlm, 3 ), nsv ) )
-allocate( zreds1  (size( pthlm, 1 ), size( pthlm, 2 ), size( pthlm, 3 ), nsv ) )
-allocate( zred2ths(size( pthlm, 1 ), size( pthlm, 2 ), size( pthlm, 3 ), nsv ) )
-allocate( zred2rs (size( pthlm, 1 ), size( pthlm, 2 ), size( pthlm, 3 ), nsv ) )
+#ifndef MNH_OPENACC
+allocate( zpsi_sv (JIU,JJU,JKU, nsv ) )
+allocate( zreds1  (JIU,JJU,JKU, nsv ) )
+allocate( zred2ths(JIU,JJU,JKU, nsv ) )
+allocate( zred2rs (JIU,JJU,JKU, nsv ) )
+#else
+izpsi_sv  = MNH_ALLOCATE_ZT4D( zpsi_sv ,JIU,JJU,JKU, nsv )
+izreds1   = MNH_ALLOCATE_ZT4D( zreds1  ,JIU,JJU,JKU, nsv )
+izred2ths = MNH_ALLOCATE_ZT4D( zred2ths,JIU,JJU,JKU, nsv )
+izred2rs  = MNH_ALLOCATE_ZT4D( zred2rs ,JIU,JJU,JKU, nsv )
+#endif
 
 !$acc data present (ZBETA, ZSQRT_TKE, ZDTH_DZ, ZDR_DZ, ZRED2TH3, ZRED2R3, ZRED2THR3,&
 !$acc &             ZBLL_O_E, ZETHETA, ZEMOIST, ZREDTH1, ZREDR1,                    &
-!$acc &             ZPHI3, ZPSI3, ZD, ZWTHV, ZWU, ZWV, ZTHLP, ZRP)                  &
-!$acc &    create  ( ZPSI_SV, ZREDS1, ZRED2THS, ZRED2RS )
+!$acc &             ZPHI3, ZPSI3, ZD, ZWTHV, ZWU, ZWV, ZTHLP, ZRP,                  &
+!$acc &             ZPSI_SV, ZREDS1, ZRED2THS, ZRED2RS )
 
 !
 !*       1.   PRELIMINARIES
@@ -908,6 +916,14 @@ CALL MNH_REL_ZT3D(izbeta,izsqrt_tke,izdth_dz,izdr_dz,izred2th3,izred2r3,izred2th
            izd,izwthv,izwu,izwv,izthlp,izrp)
 #endif
 
+#ifndef MNH_OPENACC
+DEALLOCATE(zpsi_sv,zreds1,zred2ths,zred2rs)
+#else
+CALL MNH_REL_ZT4D (nsv  , izred2rs  )
+CALL MNH_REL_ZT4D (nsv  , izred2ths  )
+CALL MNH_REL_ZT4D (nsv  , izreds1  )
+CALL MNH_REL_ZT4D (nsv  , izpsi_sv  )
+#endif
 !$acc end data
 
 !----------------------------------------------------------------------------