Skip to content

Commit dc27eef

Browse files
committed
ACC: use data regions rather than hard-coded parallel gang loops
1 parent e5e34b1 commit dc27eef

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

src/ecwam/cireduce_loki_gpu.F90

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,14 @@ SUBROUTINE CIREDUCE_LOKI_GPU (WVPRPT, FF_NOW)
9999
ENDIF
100100
CALL GSTATS(1493,0)
101101
! DETERMINE THE WAVE ATTENUATION FACTOR
102-
!$acc parallel loop gang present(FF_NOW, WVPRPT) vector_length(NPROMA_WAM)
102+
!$acc data present(FF_NOW, WVPRPT)
103+
103104
DO ICHNK = 1, NCHNK
104105
CALL CIWAF(1, NPROMA_WAM, WVPRPT%CGROUP(:,:,ICHNK), FF_NOW%CICOVER(:,ICHNK), &
105106
& FF_NOW%CITHICK(:,ICHNK), WVPRPT%CIWA(:,:,ICHNK))
106107
ENDDO
107-
!$acc end parallel loop
108+
109+
!$acc end data
108110
CALL GSTATS(1493,1)
109111
ENDIF
110112

src/ecwam/outbs_loki_gpu.F90

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ SUBROUTINE OUTBS_LOKI_GPU (MIJ, FL1, XLLWS, &
9595
!$loki update_device
9696

9797
CALL GSTATS(1502,0)
98-
!$acc parallel loop gang default(present) copyin(NPROMA_WAM) copyout(BOUT) vector_length(NPROMA_WAM)
98+
!$acc data present(MIJ,WVPRPT,WVENVI,INTFLDS,FF_NOW,NEMO2WAM) copyout(BOUT)
99+
99100
DO ICHNK = 1, NCHNK
100101
CALL OUTBLOCK(1, NPROMA_WAM, MIJ(:,ICHNK), &
101102
& FL1(:,:,:,ICHNK), XLLWS(:,:,:,ICHNK), &
@@ -117,7 +118,8 @@ SUBROUTINE OUTBS_LOKI_GPU (MIJ, FL1, XLLWS, &
117118
& NEMO2WAM%NEMOVCUR(:, ICHNK), &
118119
& BOUT(:,:,ICHNK))
119120
ENDDO
120-
!$acc end parallel loop
121+
122+
!$acc end data
121123
CALL GSTATS(1502,1)
122124

123125
! PRINT OUT NORMS

src/ecwam/wamintgr_loki_gpu.F90

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
155155
IF (LHOOK) CALL DR_HOOK('IMPLSCH',0,ZHOOK_HANDLE_IMPLSCH)
156156
TIME0=-WAM_USER_CLOCK()
157157

158-
!$acc parallel loop gang vector_length(NPROMA_WAM) default(present) copyin(NPROMA_WAM)
158+
!$acc data present(VARS_4D,WVPRPT,WVENVI,FF_NOW,WAM2NEMO,INTFLDS,MIJ)
159+
159160
DO ICHNK=1,NCHNK
160161
CALL IMPLSCH (1, NPROMA_WAM, VARS_4D%FL1(:,:,:,ICHNK), &
161162
& WVPRPT%WAVNUM(:,:,ICHNK), WVPRPT%CGROUP(:,:,ICHNK), WVPRPT%CIWA(:,:,ICHNK), &
@@ -179,7 +180,8 @@ SUBROUTINE WAMINTGR_LOKI_GPU(CDTPRA, CDATE, CDATEWH, CDTIMP, CDTIMPNEXT, &
179180
& INTFLDS%PHIEPS(:,ICHNK), INTFLDS%PHIAW(:,ICHNK), &
180181
& MIJ%PTR(:,ICHNK), VARS_4D%XLLWS(:,:,:,ICHNK) )
181182
END DO
182-
!$acc end parallel loop
183+
184+
!$acc end data
183185

184186
TIME_PHYS = TIME_PHYS + (TIME0+WAM_USER_CLOCK())*1.E-06
185187
IF (LHOOK) CALL DR_HOOK('IMPLSCH',1,ZHOOK_HANDLE_IMPLSCH)

0 commit comments

Comments
 (0)