diff --git a/src/MNH/ice4_fast_rg.f90 b/src/MNH/ice4_fast_rg.f90
index 68a0c829ee33094ff32a01eafd44b2f1c8753552..579954a5b0ced57b5d2c68d2fb73b831152c0f8c 100644
--- a/src/MNH/ice4_fast_rg.f90
+++ b/src/MNH/ice4_fast_rg.f90
@@ -840,7 +840,21 @@ END IF
 
 !$acc end data
 
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( zrwetg_init )
+deallocate( zrdryg_init )
+deallocate( zzw         )
+deallocate( zvec3       )
+deallocate( zvec2       )
+deallocate( zvec1       )
+deallocate( zmask       )
+deallocate( zdryg       )
+deallocate( zdry        )
+deallocate( gdry        )
+deallocate( ivec2       )
+deallocate( ivec1       )
+deallocate( i1          )
+#else
 CALL MNH_RELEASE_FLAT( IZRWETG_INIT )
 CALL MNH_RELEASE_FLAT( IZRDRYG_INIT )
 CALL MNH_RELEASE_FLAT( IZZW   )
diff --git a/src/MNH/ice4_fast_rs.f90 b/src/MNH/ice4_fast_rs.f90
index 9d635fc3efa5615ff115b4cf09f7dedebc7b112d..b7a5718636bcfce64257d3ba0f3639cc7e14e07f 100644
--- a/src/MNH/ice4_fast_rs.f90
+++ b/src/MNH/ice4_fast_rs.f90
@@ -750,7 +750,23 @@ END IF
 
 !$acc end data
 
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( zfreez_rate )
+deallocate( zzw6        )
+deallocate( zzw2        )
+deallocate( zzw         )
+deallocate( zvec3       )
+deallocate( zvec2       )
+deallocate( zvec1       )
+deallocate( zmask       )
+deallocate( zacc        )
+deallocate( zrim        )
+deallocate( gacc        )
+deallocate( grim        )
+deallocate( ivec2       )
+deallocate( ivec1       )
+deallocate( i1          )
+#else
 CALL MNH_RELEASE_FLAT( IZFREEZ_RATE )
 CALL MNH_RELEASE_FLAT( IZZW6        )
 CALL MNH_RELEASE_FLAT( IZZW2        )
diff --git a/src/MNH/ice4_sedimentation_split.f90 b/src/MNH/ice4_sedimentation_split.f90
index 1c72edd94f457dc07a9b2ed83ad4cc695efc250b..41c54c295e02fab023c2d7d34a1fb63fd402b413 100644
--- a/src/MNH/ice4_sedimentation_split.f90
+++ b/src/MNH/ice4_sedimentation_split.f90
@@ -712,7 +712,16 @@ END IF
 
 !$acc end data
 
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( zwsed )
+deallocate( zremaint )
+deallocate( zrsmin )
+deallocate( zmax_tstep )
+deallocate( zmrchange )
+deallocate( i3 )
+deallocate( i2 )
+deallocate( i1 )
+#else
 CALL MNH_REL_IT1D( ii1, ii2, ii3 )
 CALL MNH_RELEASE_FLAT( IZWSED )
 CALL MNH_RELEASE_FLAT( IZRSMIN )
diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90
index d2145de2bd4e311ce08ff3455bb535fe887900f8..2329e5d1bfbd383ded8f15d5b434b160f9e683a5 100644
--- a/src/MNH/ice4_tendencies.f90
+++ b/src/MNH/ice4_tendencies.f90
@@ -981,7 +981,36 @@ END IF
 
 !$acc end data
 
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( zrht3d )
+deallocate( zrgt3d )
+deallocate( zrst3d )
+deallocate( zrrt3d )
+deallocate( zrgsi_mr )
+deallocate( zrgsi    )
+deallocate( zlbdar_rf)
+deallocate( zlbdah   )
+deallocate( zlbdag   )
+deallocate( zlbdas   )
+deallocate( zlbdar   )
+deallocate( zrf      )
+deallocate( zcj      )
+deallocate( zai      )
+deallocate( zdv      )
+deallocate( zka      )
+deallocate( zzw      )
+deallocate( zrht     )
+deallocate( ztht     )
+deallocate( zt       )
+deallocate( zrgt     )
+deallocate( zrst     )
+deallocate( zrit     )
+deallocate( zrrt     )
+deallocate( zrct     )
+deallocate( zrvt     )
+deallocate( zwetg    )
+deallocate( gldcompute )
+#else
 CALL MNH_REL_ZT3D( IZRRT3D, IZRST3D, IZRGT3D, IZRHT3D )
 CALL MNH_RELEASE_FLAT( IZRGSI_MR )
 CALL MNH_RELEASE_FLAT( IZRGSI )
@@ -1006,6 +1035,7 @@ CALL MNH_RELEASE_FLAT( IZRRT )
 CALL MNH_RELEASE_FLAT( IZRCT )
 CALL MNH_RELEASE_FLAT( IZRVT )
 CALL MNH_RELEASE_FLAT( IZWETG )
+deallocate( gldcompute )
 #endif
 
 !$acc end data
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 9349770561efc3495b75e291d5bf10152135f2db..0938d644327686ba4e933532de3a946cffd1f17f 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -1293,11 +1293,16 @@ END IF
 !$acc end data
 
 #ifndef MNH_OPENACC
-deallocate (LLMICRO)
-deallocate (ZDZZ,ZEXN,ZZZ)
-deallocate (ZINPRI)
-deallocate (ZTHSSTEP)
-deallocate (ZRSSTEP)
+deallocate( ZRSSTEP )
+deallocate( ZTHSSTEP )
+deallocate( ZINPRI )
+deallocate( ZZZ )
+deallocate( ZPRCFR )
+deallocate( ZICEFR )
+deallocate( ZFPR )
+deallocate( ZEXN )
+deallocate( ZDZZ )
+deallocate( LLMICRO )
 #else
 CALL MNH_REL_ZT4D(SIZE(PRS,4) , IZRSSTEP )
 CALL MNH_REL_ZT3D ( IZTHSSTEP )
diff --git a/src/MNH/sources_neg_correct.f90 b/src/MNH/sources_neg_correct.f90
index 2f115d901dee1b55a38c7c0bc5b83aa9e20686e2..3c7f673952f72b35ac511127bd4493f32c8654fd 100644
--- a/src/MNH/sources_neg_correct.f90
+++ b/src/MNH/sources_neg_correct.f90
@@ -406,7 +406,9 @@ end select CLOUD
 
 !$acc end data
 
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( zexn, zlv, zcph, zls, zcor )
+#else
 call Mnh_rel_zt3d ( izt, izexn, izlv, izcph, izls, izcor )
 #endif
 
diff --git a/src/ZSOLVER/gdiv.f90 b/src/ZSOLVER/gdiv.f90
index b24671946032bad84794fc77fe40638c80ca952b..567912df05f6b49c5b764414b7ea8b61b636f98e 100644
--- a/src/ZSOLVER/gdiv.f90
+++ b/src/ZSOLVER/gdiv.f90
@@ -344,7 +344,9 @@ END IF
 ! wait on GPU for all corner update
 !$acc wait
 !
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+DEALLOCATE( ZUC, ZVC, ZWC, Z1, Z2, Z3 )
+#else
 CALL MNH_REL_ZT3D (IZUC,IZVC,IZWC,IZ1,IZ2,IZ3,IZTMP1,IZTMP2)
 #endif
 !
diff --git a/src/ZSOLVER/pressurez.f90 b/src/ZSOLVER/pressurez.f90
index 21a0b926c2f578593c5a786f3b6895b5e6a2f79e..67ee08c9fbf4ef2698feefe26cd91def736b9631 100644
--- a/src/ZSOLVER/pressurez.f90
+++ b/src/ZSOLVER/pressurez.f90
@@ -1061,7 +1061,11 @@ IF ((ZMAX_ll > 1.E-12) .AND. KTCOUNT >0 ) THEN
 !
 END IF
 !
-#ifdef MNH_OPENACC
+#ifndef MNH_OPENACC
+deallocate( ZDV_SOURCE )
+deallocate( ZTHETAV )
+deallocate( ZPHIT )
+#else
 CALL MNH_REL_ZT3D ( IZPRHODJ,IZMXM_PRHODJ,IZMZM_PRHODJ,IZGZ_M_W,IZMYM_PRHODJ )
 CALL MNH_REL_ZT3D ( IZDV_SOURCE,IZTHETAV,IZPHIT)
 #endif