gfortran6 with OpenACC - error
Anton Shterenlikht
mexas@bris.ac.uk
Tue Apr 26 15:08:00 GMT 2016
gfortran 6.0.0 20160410 on linux.
Compiling with *no* -fopenacc works fine,
and the serial program runs as expected.
Compiling with -fopenacc gives an error.
Am I using OpenACC directives wrongly?
newblue4> cat z.f90
program z
implicit none
integer, parameter :: d1 = 1000, d2 = 1000
real :: tmp( (d1-2) *(d2-2) )
real, allocatable :: arr(:,:), old(:,:)
integer :: i,j,k
! allocate and set all to zero
allocate( arr(d1,d2), source = 0.0 )
allocate( old(d1,d2) )
! set inner cells to random numbers
call random_number(tmp)
arr( 2:d1-1 , 2:d2-1 ) = reshape( tmp, (/ d1-2, d1-2 /) )
!$acc data copy(arr)
write (*,*) "before:", sum(abs(arr))
do i=1,1000
old = arr
!$acc kernels
do j=2,d1-1
do k=2,d2-1
arr(j,k) = 0.25 * ( old(j-1,k) + old(j+1,k) + old(j,k-1) + old(j,k+1) )
end do
end do
!$acc end kernels
end do
write (*,*) "after:", sum(abs(arr))
end program z
newblue4>
newblue4> gfortran -O2 z.f90 -Wall -o gfort-acc.x
newblue4> time ./gfort-acc.x
before: 497871.688
after: 464004.844
9.102u 0.006s 0:09.13 99.6% 0+0k 0+0io 0pf+0w
newblue4>
newblue4> gfortran -fopenacc -O2 z.f90 -Wall -o gfort-acc.x
z.f90:34:3:
end program z
1
Error: Unexpected END statement at (1)
f951: Error: Unexpected end of file in âÂÂz.f90âÂÂ
newblue4>
Thanks
Anton
More information about the Fortran
mailing list