41 lines
621 B
Fortran
41 lines
621 B
Fortran
! { dg-do run }
|
|
|
|
program parallel_wait
|
|
integer, parameter :: N = 64
|
|
real, allocatable :: a(:), b(:), c(:)
|
|
integer i
|
|
|
|
allocate (a(N))
|
|
allocate (b(N))
|
|
allocate (c(N))
|
|
|
|
!$acc parallel async (0)
|
|
!$acc loop
|
|
do i = 1, N
|
|
a(i) = 1
|
|
end do
|
|
!$acc end parallel
|
|
|
|
!$acc parallel async (1)
|
|
!$acc loop
|
|
do i = 1, N
|
|
b(i) = 1
|
|
end do
|
|
!$acc end parallel
|
|
|
|
!$acc parallel wait (0, 1)
|
|
!$acc loop
|
|
do i = 1, N
|
|
c(i) = a(i) + b(i)
|
|
end do
|
|
!$acc end parallel
|
|
|
|
do i = 1, N
|
|
if (c(i) .ne. 2.0) call abort
|
|
end do
|
|
|
|
deallocate (a)
|
|
deallocate (b)
|
|
deallocate (c)
|
|
end program parallel_wait
|