diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 5fadcc1ba0362ff545e3ba18027e367b4b1f631e..7a6d375650c0113def103ab102406018cca0ba5e 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -790,6 +790,7 @@ ALLOCATE(XRUS_PRES(IIU,IJU,IKU)); XRUS_PRES = 0.0
 ALLOCATE(XRVS_PRES(IIU,IJU,IKU)); XRVS_PRES = 0.0
 ALLOCATE(XRWS_PRES(IIU,IJU,IKU)); XRWS_PRES = 0.0
 ALLOCATE(XRTHS(IIU,IJU,IKU))    ; XRTHS = 0.0
+!$acc enter data copyin(XRTHS)
 ALLOCATE(XRTHS_CLD(IIU,IJU,IKU)); XRTHS_CLD = 0.0
 IF (CTURB /= 'NONE') THEN
   ALLOCATE(XTKET(IIU,IJU,IKU))
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index e28be6ca8739ad56d00eba91d4c6d450e720db43..57bab5dd2e8901a45893663e1e3c4a9588a4eff4 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -1501,13 +1501,16 @@ ZTIME1 = ZTIME2
 XTIME_BU_PROCESS = 0.
 XTIME_LES_BU_PROCESS = 0.
 !
+!$acc update device(XRTHS)
+!
 !$acc data create (XUT, XVT, XWT)                                         &
 !$acc &    copyin (XTHT, XPABST, XRT, XSVT, XRTHS_CLD, XRRS_CLD, XTHVREF) &
-!$acc &    copy   (XRTHS, XRRS, XRUS, XRVS, XRWS)                         &
+!$acc &    copy   (XRRS, XRUS, XRVS, XRWS)                         &
 !$acc &    copy   (XRWS_PRES)                                             & !XRWS_PRES copy and not copyout (hidden in UPDATE_HALO)
 !$acc &    present(XDXX, XDYY, XDZZ, XDZX, XDZY, XRHODJ)
 !
 !$acc update device(XUT, XVT, XWT, XRHODJ)
+
 !
 !
 !$acc data copyin (XTKET, XRSVS_CLD) &
@@ -1523,6 +1526,8 @@ CALL ADVECTION_METSV ( TZBAKFILE, GCLOSE_OUT,CUVW_ADV_SCHEME,          &
                  XRTHS_CLD, XRRS_CLD, XRSVS_CLD, XRTKEMS               )
 !$acc end data
 !
+!$acc update host(XRTHS)
+!
 CALL SECOND_MNH2(ZTIME2)
 !
 XT_ADV = XT_ADV + ZTIME2 - ZTIME1 - XTIME_LES_BU_PROCESS - XTIME_BU_PROCESS
@@ -1777,9 +1782,12 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
 !$acc &            XRCM, XWT_ACT_NUC, XDTHRAD, XCF_MF, XRC_MF, XRI_MF,                           &
 !$acc &            XSOLORG, XMI)                                                                 &
 !$acc &    copy   (XSUPSAT, XNACT, XNPRO, XSSPRO,                                                &
-!$acc &            XRTHS, XRT, XRRS, XSVT, XRSVS, XCLDFR, XCIT, XINPRR3D, XEVAP3D,               &
+!$acc &            XRT, XRRS, XSVT, XRSVS, XCLDFR, XCIT, XINPRR3D, XEVAP3D,               &
 !$acc &            XINPRC, XINPRR, XINPRS, XINPRG, XINPRH, XINDEP)                               &
 !$acc &    copyout(XSRCT, XRAINFR)
+
+!$acc update device ( XRTHS )
+  
   IF (CSURF=='EXTE') THEN
     ALLOCATE (ZSEA(SIZE(XRHODJ,1),SIZE(XRHODJ,2)))
     ALLOCATE (ZTOWN(SIZE(XRHODJ,1),SIZE(XRHODJ,2)))
@@ -1829,6 +1837,9 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, XRAINFR        )
   END IF
 !$acc end data
+
+!$acc update host(XRTHS)
+  
   XRTHS_CLD(:, :, : )    = XRTHS(:, :, : )    - XRTHS_CLD(:, :, : )
   XRRS_CLD (:, :, :, : ) = XRRS (:, :, :, : ) - XRRS_CLD (:, :, :, : )
   XRSVS_CLD(:, :, :, : ) = XRSVS(:, :, :, : ) - XRSVS_CLD(:, :, :, : )