Retro68/gcc/libgomp/testsuite/libgomp.fortran/depend-iterator-2.f90
2022-10-27 20:55:19 +02:00

90 lines
2.5 KiB
Fortran

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