blob: a5b058d4a4fa1bb54d04eca1e8dd3add3b5c98f4 [file] [log] [blame]
program main
implicit none
integer :: a(0:63), b = 1
!$omp parallel num_threads (4)
block
!$omp single
block
integer :: i
!$omp taskwait depend(in: a) nowait
!$omp taskwait depend(in: a) nowait
!$omp taskwait
!$omp taskgroup
block
!$omp taskwait depend(in: a) nowait
!$omp taskwait depend(in: a) nowait
end block
do i = 0, 63
!$omp task depend(in: a) shared(a)
block
a(i) = i
end block
end do
!$omp taskwait depend(inout: a) nowait
do i = 0, 63
!$omp task depend(inoutset: a) shared(a)
block
if (a(i) /= i) then
error stop
else
a(i) = 2 * i + 1
end if
end block
end do
!$omp taskwait nowait depend(out: a) depend(in: b)
!$omp taskwait depend(inout: b)
do i = 0, 63
if (a(i) /= 2 * i + 1) &
error stop
end do
end block
end block
end program