1234567891011121314151617181920212223242526272829303132333435 |
- ! { dg-do run }
- integer :: x(3:6, 7:12), y
- y = 1
- !$omp parallel shared (x, y)
- !$omp single
- !$omp taskgroup
- !$omp task depend(in: x(:, :))
- if (y.ne.1) call abort
- !$omp end task
- !$omp task depend(out: x(:, :))
- y = 2
- !$omp end task
- !$omp end taskgroup
- !$omp taskgroup
- !$omp task depend(in: x(4, 7))
- if (y.ne.2) call abort
- !$omp end task
- !$omp task depend(out: x(4:4, 7:7))
- y = 3
- !$omp end task
- !$omp end taskgroup
- !$omp taskgroup
- !$omp task depend(in: x(4:, 8:))
- if (y.ne.3) call abort
- !$omp end task
- !$omp task depend(out: x(4:6, 8:12))
- y = 4
- !$omp end task
- !$omp end taskgroup
- !$omp end single
- !$omp end parallel
- if (y.ne.4) call abort
- end
|