diff --git a/src/ZSOLVER/ini_modeln.f90 b/src/ZSOLVER/ini_modeln.f90 index 75587ef41ec43b4ae41fadd1890abd2091ee413c..609de0788d2d404ebc5212565d81cea6d352cd74 100644 --- a/src/ZSOLVER/ini_modeln.f90 +++ b/src/ZSOLVER/ini_modeln.f90 @@ -848,6 +848,7 @@ ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0 ALLOCATE(XVT(IIU,IJU,IKU)) ; XVT = 0.0 ALLOCATE(XWT(IIU,IJU,IKU)) ; XWT = 0.0 ALLOCATE(XTHT(IIU,IJU,IKU)) ; XTHT = 0.0 +!$acc enter data copyin(XTHT) ALLOCATE(XRUS(IIU,IJU,IKU)) ; XRUS = 0.0 ALLOCATE(XRVS(IIU,IJU,IKU)) ; XRVS = 0.0 ALLOCATE(XRWS(IIU,IJU,IKU)) ; XRWS = 0.0 @@ -934,6 +935,7 @@ ALLOCATE(XPABST(IIU,IJU,IKU)) ; XPABST = 0.0 !$acc enter data copyin(XPABST) ! ALLOCATE(XRT(IIU,IJU,IKU,NRR)) ; XRT = 0.0 + ALLOCATE(XRRS(IIU,IJU,IKU,NRR)) ; XRRS = 0.0 ALLOCATE(XRRS_CLD(IIU,IJU,IKU,NRR)); XRRS_CLD = 0.0 ! @@ -1039,14 +1041,15 @@ END IF ALLOCATE(XPHIT(IIU,IJU,IKU)) ALLOCATE(XRHODREF(IIU,IJU,IKU)) ALLOCATE(XTHVREF(IIU,IJU,IKU)) -ALLOCATE(XEXNREF(IIU,IJU,IKU)) +ALLOCATE(XEXNREF(IIU,IJU,IKU)) ALLOCATE(XRHODJ(IIU,IJU,IKU)) -!$acc enter data create(XRHODJ) +!$acc enter data create(XRHODREF,XEXNREF,XTHVREF,XRHODJ) IF (CEQNSYS=='DUR' .AND. LUSERV) THEN ALLOCATE(XRVREF(IIU,IJU,IKU)) ELSE ALLOCATE(XRVREF(0,0,0)) END IF +!$acc enter data create(XRVREF) ! !* 3.4 Module MODD_CURVCOR_n ! diff --git a/src/ZSOLVER/modeln.f90 b/src/ZSOLVER/modeln.f90 index 194b37a60da097527445893d401e0900b33600ba..c36c99582f7efc80ed9e44bfffa215911304c774 100644 --- a/src/ZSOLVER/modeln.f90 +++ b/src/ZSOLVER/modeln.f90 @@ -1633,13 +1633,14 @@ XTIME_LES_BU_PROCESS = 0. ! !XRWS_PRES copy and not copyout (hidden in UPDATE_HALO) !$acc data create (XUT, XVT, XWT) & -!$acc & copyin (XTHT, XRT, XSVT, XRTHS_CLD, XRRS_CLD, XTHVREF) & +!$acc & copyin ( XRT, XSVT, XRTHS_CLD, XRRS_CLD ) & !$acc & copy (XRRS, XRWS_PRES) & -!$acc & present(XDXX, XDYY, XDZZ, XDZX, XDZY, XRHODJ, XRUS, XRVS, XRWS ) +!$acc & present(XDXX, XDYY, XDZZ, XDZX, XDZY, XRHODJ, XRUS, XRVS, XRWS ) & +!$acc & present(XTHT) ! !$acc update device(XUT, XVT, XWT, XRHODJ) !$acc update device(XRUS, XRVS, XRWS) -!$acc update device(XPABST) +!$acc update device(XPABST,XTHT) ! !$acc data copyin (XTKET, XRSVS_CLD) & !$acc & copy (XRTKES, XRSVS) & @@ -1952,7 +1953,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XRRS_CLD (:, :, :, : ) = XRRS(:, :, :, : ) XRSVS_CLD(:, :, :, : ) = XRSVS(:, :, :, : ) !$acc data present( XRHODJ, XRTHS, ZPABST ) & -!$acc & copyin (XZZ, XRHODREF, XEXNREF, XTHT, XSIGS, VSIGQSAT, XMFCONV, XTHM, XPABSM, & +!$acc & copyin (XZZ, XTHT, XSIGS, VSIGQSAT, XMFCONV, XTHM, XPABSM, & !$acc & XRCM, XWT_ACT_NUC, XDTHRAD, XCF_MF, XRC_MF, XRI_MF, & !$acc & XSOLORG, XMI) & !$acc & copy (XSUPSAT, XNACT, XNPRO, XSSPRO, & @@ -1961,7 +1962,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN !$acc & XHLC_HRC, XHLC_HCF, XHLI_HRI, XHLI_HCF) & !$acc & copyout(XSRCT, XRAINFR) -!$acc update device (XRTHS) +!$acc update device (XRTHS) IF (CSURF=='EXTE') THEN #ifndef MNH_OPENACC diff --git a/src/ZSOLVER/set_ref.f90 b/src/ZSOLVER/set_ref.f90 index 2fbb25ee08b0c3fffee800db82afdbb494f5c00d..a5e8b75322d1edc2df4211d9f2bc98a61ab6ab79 100644 --- a/src/ZSOLVER/set_ref.f90 +++ b/src/ZSOLVER/set_ref.f90 @@ -594,6 +594,10 @@ IF(NVERB >= 10) THEN !Value control END DO END IF ! +!$acc update device(PEXNREF,PRHODREF,PTHVREF) +IF ( SIZE(PRVREF,1) /= 0 ) THEN + !$acc update device(PRVREF) +END IF !------------------------------------------------------------------------------- ! END SUBROUTINE SET_REF