mirror of
https://github.com/autc04/Retro68.git
synced 2025-02-27 05:30:18 +00:00
90 lines
2.5 KiB
Fortran
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
|