diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90
index 6c8d331cf942b2e1c62aa08b6e6c4260a436bee5..15cb3febaf2e0aec75f53c283913653db49ec2e7 100644
--- a/src/MNH/condensation.f90
+++ b/src/MNH/condensation.f90
@@ -212,16 +212,15 @@ REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZCRIAUTIP
 INTEGER, DIMENSION(:,:),   POINTER, CONTIGUOUS :: ITPL            ! top levels of troposphere
 REAL,    DIMENSION(:,:),   POINTER, CONTIGUOUS :: ZTMIN           ! minimum Temp. related to ITPL
 !
-REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZLV, ZLS, ZCPD
+REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZLV, ZLS, ZCPD, ZCONDP
 REAL                                           :: ZCOND
-REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZCONDP
 REAL :: ZGCOND, ZSBAR, ZSBARC, ZQ1, ZAUTC, ZAUTI, ZGAUV, ZGAUC, ZGAUI, ZGAUTC, ZGAUTI   ! Used for integration in Gaussian Probability Density Function
 REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZSBARP,ZQ1P,ZGCONDP,ZGAUVP,ZAUTCP,ZGAUTCP,ZGAUCP,ZAUTIP,ZGAUTIP,ZGAUIP
 REAL :: ZTEMP, ZPV, ZQSL, ZPIV, ZQSI, ZLVS ! thermodynamics
 REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZPVP,ZQSLP,ZPIVP,ZQSIP,ZLVSP
-REAL :: ZLL, DZZ, ZZZ                           ! used for length scales
-REAL,    DIMENSION(:,:)  , POINTER, CONTIGUOUS :: ZZZP
-REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: DZZP,ZLLP
+REAL :: ZLL, DZZ
+REAL,    DIMENSION(:,:),   POINTER, CONTIGUOUS :: ZZZP
+REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZDZZP,ZLLP                           ! used for length scales
 REAL :: ZAH, ZA, ZB, ZSIGMA, ZDRW, ZDTL, ZSIG_CONV ! related to computation of Sig_s
 REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZAHP,ZAP,ZBP,ZSIGMAP,ZDRWP,ZDTLP,ZSIG_CONVP
 REAL :: ZRCOLD, ZRIOLD
@@ -318,7 +317,7 @@ allocate( ZAP(kiu, kju, kku ) )
 allocate( ZBP(kiu, kju, kku ) )
 allocate( ZSBARP(kiu, kju, kku ) )
 allocate( ZSIGMAP(kiu, kju, kku ) )
-allocate( DZZP(kiu, kju, kku ) )
+allocate( ZDZZP(kiu, kju, kku ) )
 allocate( ZDRWP(kiu, kju, kku ) )
 allocate( ZDTLP(kiu, kju, kku ) )
 allocate( ZLLP(kiu, kju, kku ) )
@@ -370,7 +369,7 @@ CALL MNH_MEM_GET( ZAP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZBP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZSBARP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZSIGMAP, kiu, kju, kku )
-CALL MNH_MEM_GET( DZZP, kiu, kju, kku )
+CALL MNH_MEM_GET( ZDZZP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZDRWP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZDTLP, kiu, kju, kku )
 CALL MNH_MEM_GET( ZLLP, kiu, kju, kku )
@@ -396,7 +395,7 @@ CALL MNH_MEM_GET( JKMK, kku )
 !$acc data present( PPABS, PZZ, PT, PRV, PRC, PRI, PRS, PRG, PSIGS, PMFCONV, PCLDFR, PSIGRC, &
 !$acc &             ztlk, zrt, zl, zfrac, itpl, ztmin, zlv, zls,zcpd, gwork,&
 !$acc &             ZZZP,JKPP,ZPVP,ZQSLP,ZPIVP,ZQSIP,ZLVSP,ZAHP,ZAP,ZBP,ZSBARP,ZSIGMAP,&
-!$acc &             DZZP,ZDRWP,ZDTLP,ZLLP,ZSIG_CONVP,ZQ1P,ZGCONDP,ZGAUVP,ZCONDP,ZAUTCP,&
+!$acc &             ZDZZP,ZDRWP,ZDTLP,ZLLP,ZSIG_CONVP,ZQ1P,ZGCONDP,ZGAUVP,ZCONDP,ZAUTCP,&
 !$acc &             ZGAUTCP,ZGAUCP,ZCRIAUTIP,ZAUTIP,ZGAUTIP,ZGAUIP,INQ1P,ZINCP,ZRCOLDP,ZRIOLDP,&
 !$acc &             JKPK,JKMK )
 #endif
@@ -560,9 +559,9 @@ DO CONCURRENT(JI=KIB:KIE,JJ=KJB:KJE,JK=IKTB:IKTE)
         END IF
       ELSE
         ! parameterize Sigma_s with first_order closure
-        DZZP(JI,JJ,JK)    =  PZZ(JI,JJ,JKPK(JK)) - PZZ(JI,JJ,JKMK(JK))
+        ZDZZP(JI,JJ,JK)   =  PZZ(JI,JJ,JKPK(JK)) - PZZ(JI,JJ,JKMK(JK))
         ZDRWP(JI,JJ,JK)   =  ZRT(JI,JJ,JKPK(JK)) - ZRT(JI,JJ,JKMK(JK))
-        ZDTLP(JI,JJ,JK)   =  ZTLK(JI,JJ,JKPK(JK)) - ZTLK(JI,JJ,JKMK(JK)) + XG/ZCPD(JI,JJ,JK) * DZZP(JI,JJ,JK)
+        ZDTLP(JI,JJ,JK)   =  ZTLK(JI,JJ,JKPK(JK)) - ZTLK(JI,JJ,JKMK(JK)) + XG/ZCPD(JI,JJ,JK) * ZDZZP(JI,JJ,JK)
         ZLLP(JI,JJ,JK) = ZL(JI,JJ,JK)
         ! standard deviation due to convection
         ZSIG_CONVP(JI,JJ,JK) =0.
@@ -570,11 +569,11 @@ DO CONCURRENT(JI=KIB:KIE,JJ=KJB:KJE,JK=IKTB:IKTE)
              ZSIG_CONVP(JI,JJ,JK) = ZCSIG_CONV * PMFCONV(JI,JJ,JK) / ZAP(JI,JJ,JK)
         ! zsigma should be of order 4.e-4 in lowest 5 km of atmosphere
         ZSIGMAP(JI,JJ,JK) =  SQRT( MAX( 1.E-25, ZCSIGMA * ZCSIGMA * ZLLP(JI,JJ,JK)*ZLLP(JI,JJ,JK) &
-             /(DZZP(JI,JJ,JK)*DZZP(JI,JJ,JK))*(&
-             ZAP(JI,JJ,JK)*ZAP(JI,JJ,JK)*ZDRWP(JI,JJ,JK)*ZDRWP(JI,JJ,JK) - 2.*ZAP(JI,JJ,JK)*ZBP(JI,JJ,JK) &
-             *ZDRWP(JI,JJ,JK)*ZDTLP(JI,JJ,JK) &
-             + ZBP(JI,JJ,JK)*ZBP(JI,JJ,JK)*ZDTLP(JI,JJ,JK)*ZDTLP(JI,JJ,JK)) + &
-             ZSIG_CONVP(JI,JJ,JK) * ZSIG_CONVP(JI,JJ,JK) ) )
+                            /(ZDZZP(JI,JJ,JK)*ZDZZP(JI,JJ,JK))*(&
+                            ZAP(JI,JJ,JK)*ZAP(JI,JJ,JK)*ZDRWP(JI,JJ,JK)*ZDRWP(JI,JJ,JK) - 2.*ZAP(JI,JJ,JK)*ZBP(JI,JJ,JK) &
+                            * ZDRWP(JI,JJ,JK)*ZDTLP(JI,JJ,JK) &
+                            + ZBP(JI,JJ,JK)*ZBP(JI,JJ,JK)*ZDTLP(JI,JJ,JK)*ZDTLP(JI,JJ,JK)) + &
+                            ZSIG_CONVP(JI,JJ,JK) * ZSIG_CONVP(JI,JJ,JK) ) )
       END IF
       ZSIGMAP(JI,JJ,JK)= MAX( 1.E-10, ZSIGMAP(JI,JJ,JK) )
 !     ZSIGMAP(JI,JJ,JK)= MAX( 1.E-12, ZSIGMAP(JI,JJ,JK) )
@@ -594,8 +593,7 @@ DO CONCURRENT(JI=KIB:KIE,JJ=KJB:KJE,JK=IKTB:IKTE)
         PCLDFR(JI,JJ,JK) = MAX( 0., MIN(1.,0.5*ZGAUVP(JI,JJ,JK)))
 
         !Computation of condensate
-        ZCONDP(JI,JJ,JK) = (EXP(-ZGCONDP(JI,JJ,JK)**2)-ZGCONDP(JI,JJ,JK)*SQRT(XPI)*ZGAUVP(JI,JJ,JK)) &
-                          *ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
+        ZCONDP(JI,JJ,JK) = (EXP(-ZGCONDP(JI,JJ,JK)**2)-ZGCONDP(JI,JJ,JK)*SQRT(XPI)*ZGAUVP(JI,JJ,JK))*ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
         ZCONDP(JI,JJ,JK) = MAX(ZCONDP(JI,JJ,JK), 0.)
 
         PSIGRC(JI,JJ,JK) = PCLDFR(JI,JJ,JK)
@@ -603,14 +601,13 @@ DO CONCURRENT(JI=KIB:KIE,JJ=KJB:KJE,JK=IKTB:IKTE)
         !Computation warm/cold Cloud Fraction and content in high water content part
         IF(GPRESENT_PHLC_HCF .AND. GPRESENT_PHLC_HRC)THEN
           IF(1-ZFRAC(JI,JJ,JK) > 1.E-20)THEN
-             ZAUTCP(JI,JJ,JK) = (ZSBARP(JI,JJ,JK) - XCRIAUTC/(PRHODREF(JI,JJ,JK)*(1-ZFRAC(JI,JJ,JK)))) &
-                                /ZSIGMAP(JI,JJ,JK)
+            ZAUTCP(JI,JJ,JK) = (ZSBARP(JI,JJ,JK) - XCRIAUTC/(PRHODREF(JI,JJ,JK)*(1-ZFRAC(JI,JJ,JK))))/ZSIGMAP(JI,JJ,JK)
             ZGAUTCP(JI,JJ,JK) = -ZAUTCP(JI,JJ,JK)/SQRT(2.)
             !Approximation of erf function for Gaussian distribution
             ZGAUCP(JI,JJ,JK) = 1 - SIGN(1., ZGAUTCP(JI,JJ,JK)) * SQRT(1-EXP(-4*ZGAUTCP(JI,JJ,JK)**2/XPI))
             PHLC_HCF(JI,JJ,JK) = MAX( 0., MIN(1.,0.5*ZGAUCP(JI,JJ,JK)))
             PHLC_HRC(JI,JJ,JK) = (1-ZFRAC(JI,JJ,JK))*(EXP(-ZGAUTCP(JI,JJ,JK)**2)-ZGAUTCP(JI,JJ,JK) &
-                 *SQRT(XPI)*ZGAUCP(JI,JJ,JK))*ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
+                                 *SQRT(XPI)*ZGAUCP(JI,JJ,JK))*ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
             PHLC_HRC(JI,JJ,JK) = PHLC_HRC(JI,JJ,JK) + XCRIAUTC/PRHODREF(JI,JJ,JK) * PHLC_HCF(JI,JJ,JK)
             PHLC_HRC(JI,JJ,JK) = MAX(PHLC_HRC(JI,JJ,JK), 0.)
           ELSE
@@ -628,7 +625,7 @@ DO CONCURRENT(JI=KIB:KIE,JJ=KJB:KJE,JK=IKTB:IKTE)
             ZGAUIP(JI,JJ,JK) = 1 - SIGN(1., ZGAUTIP(JI,JJ,JK)) * SQRT(1-EXP(-4*ZGAUTIP(JI,JJ,JK)**2/XPI))
             PHLI_HCF(JI,JJ,JK) = MAX( 0., MIN(1.,0.5*ZGAUIP(JI,JJ,JK)))
             PHLI_HRI(JI,JJ,JK) = ZFRAC(JI,JJ,JK)*(EXP(-ZGAUTIP(JI,JJ,JK)**2)-ZGAUTIP(JI,JJ,JK) &
-                               * SQRT(XPI)*ZGAUIP(JI,JJ,JK))*ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
+                                 * SQRT(XPI)*ZGAUIP(JI,JJ,JK))*ZSIGMAP(JI,JJ,JK)/SQRT(2.*XPI)
             PHLI_HRI(JI,JJ,JK) = PHLI_HRI(JI,JJ,JK) + ZCRIAUTIP(JI,JJ,JK)*PHLI_HCF(JI,JJ,JK)
             PHLI_HRI(JI,JJ,JK) = MAX(PHLI_HRI(JI,JJ,JK), 0.)
           ELSE
@@ -720,7 +717,7 @@ ENDDO ! CONCURRENT
 #ifndef MNH_OPENACC
 deallocate( ztlk, zrt, zl, zfrac, itpl, ztmin, zlv, zls,zcpd, gwork )
 deallocate( ZZZP, JKPP, ZPVP, ZQSLP, ZPIVP, ZQSIP, ZLVSP, ZAHP, ZAP, ZBP, ZSBARP, ZSIGMAP )
-deallocate( DZZP, ZDRWP, ZDTLP, ZLLP, ZSIG_CONVP, ZQ1P, ZGCONDP, ZGAUVP, ZCONDP, ZAUTCP )
+deallocate( ZDZZP, ZDRWP, ZDTLP, ZLLP, ZSIG_CONVP, ZQ1P, ZGCONDP, ZGAUVP, ZCONDP, ZAUTCP )
 deallocate( ZGAUTCP, ZGAUCP, ZCRIAUTIP, ZAUTIP, ZGAUTIP, ZGAUIP, INQ1P, ZINCP, ZRCOLDP, ZRIOLDP )
 deallocate( JKPK,JKMK )
 #else
diff --git a/src/MNH/fft55.f90 b/src/MNH/fft55.f90
index 805c050246737287c2decdd383c3aab6f5ffe1ed..4bc2cb5bb391bb9f48d3feba817b5f9318d34cb8 100644
--- a/src/MNH/fft55.f90
+++ b/src/MNH/fft55.f90
@@ -154,6 +154,7 @@ IEVEN=MOD(IN,2)
 INH=IN/2
 INN=2*IN
 INBLOX=1+(ILOT-1)/NVECLEN
+!INVEX = remaining of the division of NVECLEN by KLOT
 INVEX=ILOT-(INBLOX-1)*NVECLEN
 IF (KISIGN.EQ.1) THEN
 !
diff --git a/src/MNH/ice4_compute_pdf.f90 b/src/MNH/ice4_compute_pdf.f90
index 63f86857964996005d034ba866a4e7287cf7fd3e..c947980f005dd92baec85981ead1e2a86c86af1f 100644
--- a/src/MNH/ice4_compute_pdf.f90
+++ b/src/MNH/ice4_compute_pdf.f90
@@ -122,8 +122,6 @@ INTEGER :: IHSUBG_PR_PDF ! temporary variable for OpenCC character limitation (C
 !
 !-------------------------------------------------------------------------------
 
-! !$acc data copyin( XRTMIN )
-
 !$acc data present(PRHODREF,PRCT,PRIT,PCF,PT,PSIGMA_RC, &
 !$acc&                PHLC_HCF,PHLC_LCF,PHLC_HRC,PHLC_LRC,PHLI_HCF,PHLI_LCF,PHLI_HRI,PHLI_LRI,PRF)
 
diff --git a/src/MNH/ice4_rainfr_vert.f90 b/src/MNH/ice4_rainfr_vert.f90
index 629613e5d13fd48bf5a5e917fa7b11b4ff076ddb..24631212f5e82ec457c77051db746c7543c67f04 100644
--- a/src/MNH/ice4_rainfr_vert.f90
+++ b/src/MNH/ice4_rainfr_vert.f90
@@ -55,7 +55,6 @@ REAL, DIMENSION(:,:,:), OPTIONAL,INTENT(IN)    :: PRH !Hail field
 INTEGER :: JI, JJ, JK
 LOGICAL :: MASK
 !
-! !$acc data copyin( XRTMIN )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/mode_prandtl.f90 b/src/MNH/mode_prandtl.f90
index 243d0b8cb317b8d986fb59f62fd313dc4edb6660..0e08725727de7f9706dbe18a793e7a68f95f697e 100644
--- a/src/MNH/mode_prandtl.f90
+++ b/src/MNH/mode_prandtl.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -899,7 +899,7 @@ SUBROUTINE D_M3_WTH_W2R_O_DDTDZ(PREDTH1,PREDR1,PD,PKEFF,PTKE,PBLL_O_E,PEMOIST,PD
   INTEGER :: IKB, IKE
 #ifndef MNH_OPENACC
   REAL, DIMENSION(:,:,:), allocatable :: ZTMP1_DEVICE
-  #else
+#else
   REAL, DIMENSION(:,:,:), pointer,contiguous :: ZTMP1_DEVICE
 #endif
 
@@ -973,7 +973,7 @@ SUBROUTINE M3_WTH_WR2(PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PEMOIST,PDTDZ
   INTEGER :: IKB, IKE
 #ifndef MNH_OPENACC
   REAL, DIMENSION(:,:,:), allocatable :: ZTMP1_DEVICE, ZTMP2_DEVICE
-  #else
+#else
   REAL, DIMENSION(:,:,:), pointer,contiguous :: ZTMP1_DEVICE, ZTMP2_DEVICE
 #endif
 
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index d27cce3771b9dbdb5774abf3fb827c7f53be2f49..6bcc60244c930d1777fde795fbe9917a2d76142b 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -702,6 +702,13 @@ IF(CEQNSYS=='LHE'.AND. LFLAT .AND. LCARTESIAN .AND. .NOT. LIBM) THEN
   CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'PRESSUREZ', 'OpenACC: CEQNSYS=LHE.AND. LFLAT .AND. LCARTESIAN' // &
                   ' .AND. .NOT. LIBM not yet tested' )
 #endif
+
+#ifdef MNH_MGSOLVER
+  IF ( HPRESOPT == "ZSOLV" ) &
+    CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'PRESSUREZ', 'OpenACC: CEQNSYS=LHE.AND. LFLAT .AND. LCARTESIAN' // &
+                    ' .AND. .NOT. LIBM with ZSOLV: not (yet) supported' )
+#endif
+
    ! flat cartesian LHE case -> exact solution
  IF ( HPRESOPT /= "ZRESI" ) THEN
   CALL FLAT_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOT,PAF,PBF,PCF,         &
diff --git a/src/MNH/shuman.f90 b/src/MNH/shuman.f90
index 12a702243b05f5836dc87624e05ea1bfc77d8ec6..6835159d294ebf03b8c8d8b80c249ee0a62329f8 100644
--- a/src/MNH/shuman.f90
+++ b/src/MNH/shuman.f90
@@ -1,12 +1,8 @@
 !MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ##################
       MODULE MODI_SHUMAN
 !     ##################
diff --git a/src/MNH/slow_terms.f90 b/src/MNH/slow_terms.f90
index 2d7e5b7f94da0e5946cd54ef1e1acbe9e5d2adc6..e9098609247a0f776b8a8157c7bb9a3ce6475f97 100644
--- a/src/MNH/slow_terms.f90
+++ b/src/MNH/slow_terms.f90
@@ -164,11 +164,11 @@ USE MODD_CST,        only: XALPW, XBETAW, XGAMW, XCL, XCPD, XCPV, XLVTT, XMD, XM
 USE MODD_PARAMETERS, only: JPVEXT
 
 use mode_budget,     only: Budget_store_init, Budget_store_end
-use mode_mppdb
-
 #ifdef MNH_OPENACC
-  USE MODE_MNH_ZWORK, ONLY: MNH_MEM_GET, MNH_MEM_POSITION_PIN, MNH_MEM_RELEASE
+USE MODE_MNH_ZWORK,  ONLY: MNH_MEM_GET, MNH_MEM_POSITION_PIN, MNH_MEM_RELEASE
 #endif
+use mode_mppdb
+
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 use modi_bitrep
 #endif
@@ -220,8 +220,13 @@ INTEGER :: IKE           !  the microphysical sources have to be computed
 !
 REAL    :: ZTSPLITR      ! Small time step for rain sedimentation
 !
-REAL,    DIMENSION(:,:,:), POINTER,CONTIGUOUS :: ZT,ZW,ZW1,ZW2,ZW3,ZEXNT,ZDZZ  ! Work arrays
-LOGICAL, DIMENSION(:,:,:), POINTER,CONTIGUOUS :: G3D
+#ifndef MNH_OPENACC
+REAL,    DIMENSION(:,:,:), ALLOCATABLE :: ZT,ZW,ZW1,ZW2,ZW3,ZEXNT,ZDZZ  ! Work arrays
+LOGICAL, DIMENSION(:,:,:), ALLOCATABLE :: G3D
+#else
+REAL,    DIMENSION(:,:,:), POINTER, CONTIGUOUS :: ZT,ZW,ZW1,ZW2,ZW3,ZEXNT,ZDZZ  ! Work arrays
+LOGICAL, DIMENSION(:,:,:), POINTER, CONTIGUOUS :: G3D
+#endif
 !
 INTEGER                              :: JI,JJ,IC,JL ! loop control for packed array
 INTEGER                              :: JIU, JJU, JKU