blob: 05090d36c807593c51728943dbd93997ab8eaac4 [file] [log] [blame]
module m
implicit none (type, external)
integer, volatile :: v
contains
subroutine foo (p, i)
integer :: p(0:*)
integer :: i
!$omp task depend (out: p(0))
v = v + 1
!$omp end task
!$omp task depend (in: p(0))
v = v + 1
!$omp end task
!$omp task depend (inout: p(0))
v = v + 1
!$omp end task
!$omp task depend (mutexinoutset: p(0))
v = v + 1
!$omp end task
!$omp task depend (out: p(0)) depend (in: p(1))
v = v + 1
!$omp end task
!$omp task depend (in: p(0)) depend (inout: p(1))
v = v + 1
!$omp end task
!$omp task depend (inout: p(0)) depend (mutexinoutset: p(1))
v = v + 1
!$omp end task
!$omp task depend (mutexinoutset: p(0)) depend (out: p(1))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , out : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , in : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , inout : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , mutexinoutset : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , out : p(j)) depend (iterator (j=0:2) , in : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , in : p(j)) depend (iterator (j=0:2) , inout : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , inout : p(j)) depend (iterator (j=0:2) , mutexinoutset : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:2) , mutexinoutset : p(j)) depend (iterator (j=0:2) , out : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , out : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , in : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , inout : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , mutexinoutset : p(j))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , out : p(j)) depend (iterator (j=0:i) , in : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , in : p(j)) depend (iterator (j=0:i) , inout : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , inout : p(j)) depend (iterator (j=0:i) , mutexinoutset : p(j + 2))
v = v + 1
!$omp end task
!$omp task depend (iterator (j=0:i) , mutexinoutset : p(j)) depend (iterator (j=0:i) , out : p(j + 2))
v = v + 1
!$omp end task
end
end module
program main
use m
implicit none (external, type)
integer p(4)
call foo (p, 2)
call foo (p, -1)
end