diff --git a/src/MNH/fft.f90 b/src/MNH/fft.f90 index 60ee2eaabee64e4827687c856a0318d27a0593fb..1f412aaffb80efd29a0d3c01f5b778de8c207a95 100644 --- a/src/MNH/fft.f90 +++ b/src/MNH/fft.f90 @@ -223,18 +223,13 @@ SUBROUTINE FFT991( A, WORK, TRIGS, IFAX, JUMP, N, ILOT, ISIGN, KSZA, KSZW, KSZT ! ------------------------------------ IF ( MOD(NFAX,2) == 1 ) THEN !$acc kernels - IBASE=1 - JBASE=IA - DO JJ=1,NVEX - I=IBASE - J=JBASE - DO II=1,N - A(J)=WORK(I) - I=I+1 - J=J+1 - END DO - IBASE=IBASE+NX - JBASE=JBASE+JUMP +!CDIR NODEP +!*vocl loop,novrec +!$acc loop independent private( IBASE, JBASE ) + DO JJ = 1, NVEX + IBASE = 1 + (JJ-1) * NX + JBASE = IA + (JJ-1) * JUMP + A(JBASE:JBASE+N-1) = WORK(IBASE:IBASE+N-1) END DO !$acc end kernels END IF @@ -286,18 +281,13 @@ SUBROUTINE FFT991( A, WORK, TRIGS, IFAX, JUMP, N, ILOT, ISIGN, KSZA, KSZW, KSZT ! ------------------------------------ IF ( MOD(NFAX,2) == 1 ) THEN !$acc kernels - IBASE=1 - JBASE=IA - DO JJ=1,NVEX - I=IBASE - J=JBASE - DO II=1,N - A(J)=WORK(I) - I=I+1 - J=J+1 - END DO - IBASE=IBASE+NX - JBASE=JBASE+JUMP + !CDIR NODEP +!*vocl loop,novrec +!$acc loop independent private( IBASE, JBASE ) + DO JJ = 1, NVEX + IBASE = 1 + (JJ-1) * NX + JBASE = IA + (JJ-1) * JUMP + A(JBASE:JBASE+N-1) = WORK(IBASE:IBASE+N-1) END DO !$acc end kernels END IF