1module m 2 implicit none (type, external) 3 integer, volatile :: v 4contains 5subroutine foo (p, i) 6 integer :: p(0:*) 7 integer :: i 8 !$omp task depend (out: p(0)) 9 v = v + 1 10 !$omp end task 11 !$omp task depend (in: p(0)) 12 v = v + 1 13 !$omp end task 14 !$omp task depend (inout: p(0)) 15 v = v + 1 16 !$omp end task 17 !$omp task depend (mutexinoutset: p(0)) 18 v = v + 1 19 !$omp end task 20 !$omp task depend (out: p(0)) depend (in: p(1)) 21 v = v + 1 22 !$omp end task 23 !$omp task depend (in: p(0)) depend (inout: p(1)) 24 v = v + 1 25 !$omp end task 26 !$omp task depend (inout: p(0)) depend (mutexinoutset: p(1)) 27 v = v + 1 28 !$omp end task 29 !$omp task depend (mutexinoutset: p(0)) depend (out: p(1)) 30 v = v + 1 31 !$omp end task 32 !$omp task depend (iterator (j=0:2) , out : p(j)) 33 v = v + 1 34 !$omp end task 35 !$omp task depend (iterator (j=0:2) , in : p(j)) 36 v = v + 1 37 !$omp end task 38 !$omp task depend (iterator (j=0:2) , inout : p(j)) 39 v = v + 1 40 !$omp end task 41 !$omp task depend (iterator (j=0:2) , mutexinoutset : p(j)) 42 v = v + 1 43 !$omp end task 44 !$omp task depend (iterator (j=0:2) , out : p(j)) depend (iterator (j=0:2) , in : p(j + 2)) 45 v = v + 1 46 !$omp end task 47 !$omp task depend (iterator (j=0:2) , in : p(j)) depend (iterator (j=0:2) , inout : p(j + 2)) 48 v = v + 1 49 !$omp end task 50 !$omp task depend (iterator (j=0:2) , inout : p(j)) depend (iterator (j=0:2) , mutexinoutset : p(j + 2)) 51 v = v + 1 52 !$omp end task 53 !$omp task depend (iterator (j=0:2) , mutexinoutset : p(j)) depend (iterator (j=0:2) , out : p(j + 2)) 54 v = v + 1 55 !$omp end task 56 !$omp task depend (iterator (j=0:i) , out : p(j)) 57 v = v + 1 58 !$omp end task 59 !$omp task depend (iterator (j=0:i) , in : p(j)) 60 v = v + 1 61 !$omp end task 62 !$omp task depend (iterator (j=0:i) , inout : p(j)) 63 v = v + 1 64 !$omp end task 65 !$omp task depend (iterator (j=0:i) , mutexinoutset : p(j)) 66 v = v + 1 67 !$omp end task 68 !$omp task depend (iterator (j=0:i) , out : p(j)) depend (iterator (j=0:i) , in : p(j + 2)) 69 v = v + 1 70 !$omp end task 71 !$omp task depend (iterator (j=0:i) , in : p(j)) depend (iterator (j=0:i) , inout : p(j + 2)) 72 v = v + 1 73 !$omp end task 74 !$omp task depend (iterator (j=0:i) , inout : p(j)) depend (iterator (j=0:i) , mutexinoutset : p(j + 2)) 75 v = v + 1 76 !$omp end task 77 !$omp task depend (iterator (j=0:i) , mutexinoutset : p(j)) depend (iterator (j=0:i) , out : p(j + 2)) 78 v = v + 1 79 !$omp end task 80end 81end module 82 83program main 84 use m 85 implicit none (external, type) 86 integer p(4) 87 call foo (p, 2) 88 call foo (p, -1) 89end 90