Skip to content
Snippets Groups Projects
Commit 10e22d07 authored by ESCOBAR Juan's avatar ESCOBAR Juan
Browse files

Juan 08/04/2022:ZSOLVER/ , Gpu no managed Optimization of pressurez/zsolver,...

Juan 08/04/2022:ZSOLVER/ , Gpu no managed Optimization of pressurez/zsolver, put reference/constant value of XRHODREF,XEXNREF,XTHVREF,XRHODJ on GPU
parent 072c3fef
No related branches found
No related tags found
No related merge requests found
...@@ -848,6 +848,7 @@ ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0 ...@@ -848,6 +848,7 @@ ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0
ALLOCATE(XVT(IIU,IJU,IKU)) ; XVT = 0.0 ALLOCATE(XVT(IIU,IJU,IKU)) ; XVT = 0.0
ALLOCATE(XWT(IIU,IJU,IKU)) ; XWT = 0.0 ALLOCATE(XWT(IIU,IJU,IKU)) ; XWT = 0.0
ALLOCATE(XTHT(IIU,IJU,IKU)) ; XTHT = 0.0 ALLOCATE(XTHT(IIU,IJU,IKU)) ; XTHT = 0.0
!$acc enter data copyin(XTHT)
ALLOCATE(XRUS(IIU,IJU,IKU)) ; XRUS = 0.0 ALLOCATE(XRUS(IIU,IJU,IKU)) ; XRUS = 0.0
ALLOCATE(XRVS(IIU,IJU,IKU)) ; XRVS = 0.0 ALLOCATE(XRVS(IIU,IJU,IKU)) ; XRVS = 0.0
ALLOCATE(XRWS(IIU,IJU,IKU)) ; XRWS = 0.0 ALLOCATE(XRWS(IIU,IJU,IKU)) ; XRWS = 0.0
...@@ -934,6 +935,7 @@ ALLOCATE(XPABST(IIU,IJU,IKU)) ; XPABST = 0.0 ...@@ -934,6 +935,7 @@ ALLOCATE(XPABST(IIU,IJU,IKU)) ; XPABST = 0.0
!$acc enter data copyin(XPABST) !$acc enter data copyin(XPABST)
! !
ALLOCATE(XRT(IIU,IJU,IKU,NRR)) ; XRT = 0.0 ALLOCATE(XRT(IIU,IJU,IKU,NRR)) ; XRT = 0.0
ALLOCATE(XRRS(IIU,IJU,IKU,NRR)) ; XRRS = 0.0 ALLOCATE(XRRS(IIU,IJU,IKU,NRR)) ; XRRS = 0.0
ALLOCATE(XRRS_CLD(IIU,IJU,IKU,NRR)); XRRS_CLD = 0.0 ALLOCATE(XRRS_CLD(IIU,IJU,IKU,NRR)); XRRS_CLD = 0.0
! !
...@@ -1039,14 +1041,15 @@ END IF ...@@ -1039,14 +1041,15 @@ END IF
ALLOCATE(XPHIT(IIU,IJU,IKU)) ALLOCATE(XPHIT(IIU,IJU,IKU))
ALLOCATE(XRHODREF(IIU,IJU,IKU)) ALLOCATE(XRHODREF(IIU,IJU,IKU))
ALLOCATE(XTHVREF(IIU,IJU,IKU)) ALLOCATE(XTHVREF(IIU,IJU,IKU))
ALLOCATE(XEXNREF(IIU,IJU,IKU)) ALLOCATE(XEXNREF(IIU,IJU,IKU))
ALLOCATE(XRHODJ(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 IF (CEQNSYS=='DUR' .AND. LUSERV) THEN
ALLOCATE(XRVREF(IIU,IJU,IKU)) ALLOCATE(XRVREF(IIU,IJU,IKU))
ELSE ELSE
ALLOCATE(XRVREF(0,0,0)) ALLOCATE(XRVREF(0,0,0))
END IF END IF
!$acc enter data create(XRVREF)
! !
!* 3.4 Module MODD_CURVCOR_n !* 3.4 Module MODD_CURVCOR_n
! !
......
...@@ -1633,13 +1633,14 @@ XTIME_LES_BU_PROCESS = 0. ...@@ -1633,13 +1633,14 @@ XTIME_LES_BU_PROCESS = 0.
! !
!XRWS_PRES copy and not copyout (hidden in UPDATE_HALO) !XRWS_PRES copy and not copyout (hidden in UPDATE_HALO)
!$acc data create (XUT, XVT, XWT) & !$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 & 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(XUT, XVT, XWT, XRHODJ)
!$acc update device(XRUS, XRVS, XRWS) !$acc update device(XRUS, XRVS, XRWS)
!$acc update device(XPABST) !$acc update device(XPABST,XTHT)
! !
!$acc data copyin (XTKET, XRSVS_CLD) & !$acc data copyin (XTKET, XRSVS_CLD) &
!$acc & copy (XRTKES, XRSVS) & !$acc & copy (XRTKES, XRSVS) &
...@@ -1952,7 +1953,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN ...@@ -1952,7 +1953,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
XRRS_CLD (:, :, :, : ) = XRRS(:, :, :, : ) XRRS_CLD (:, :, :, : ) = XRRS(:, :, :, : )
XRSVS_CLD(:, :, :, : ) = XRSVS(:, :, :, : ) XRSVS_CLD(:, :, :, : ) = XRSVS(:, :, :, : )
!$acc data present( XRHODJ, XRTHS, ZPABST ) & !$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 & XRCM, XWT_ACT_NUC, XDTHRAD, XCF_MF, XRC_MF, XRI_MF, &
!$acc & XSOLORG, XMI) & !$acc & XSOLORG, XMI) &
!$acc & copy (XSUPSAT, XNACT, XNPRO, XSSPRO, & !$acc & copy (XSUPSAT, XNACT, XNPRO, XSSPRO, &
...@@ -1961,7 +1962,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN ...@@ -1961,7 +1962,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
!$acc & XHLC_HRC, XHLC_HCF, XHLI_HRI, XHLI_HCF) & !$acc & XHLC_HRC, XHLC_HCF, XHLI_HRI, XHLI_HCF) &
!$acc & copyout(XSRCT, XRAINFR) !$acc & copyout(XSRCT, XRAINFR)
!$acc update device (XRTHS) !$acc update device (XRTHS)
IF (CSURF=='EXTE') THEN IF (CSURF=='EXTE') THEN
#ifndef MNH_OPENACC #ifndef MNH_OPENACC
......
...@@ -594,6 +594,10 @@ IF(NVERB >= 10) THEN !Value control ...@@ -594,6 +594,10 @@ IF(NVERB >= 10) THEN !Value control
END DO END DO
END IF END IF
! !
!$acc update device(PEXNREF,PRHODREF,PTHVREF)
IF ( SIZE(PRVREF,1) /= 0 ) THEN
!$acc update device(PRVREF)
END IF
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
END SUBROUTINE SET_REF END SUBROUTINE SET_REF
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment