depend-2.f90 808 B

1234567891011121314151617181920212223242526272829303132333435
  1. ! { dg-do run }
  2. integer :: x(3:6, 7:12), y
  3. y = 1
  4. !$omp parallel shared (x, y)
  5. !$omp single
  6. !$omp taskgroup
  7. !$omp task depend(in: x(:, :))
  8. if (y.ne.1) call abort
  9. !$omp end task
  10. !$omp task depend(out: x(:, :))
  11. y = 2
  12. !$omp end task
  13. !$omp end taskgroup
  14. !$omp taskgroup
  15. !$omp task depend(in: x(4, 7))
  16. if (y.ne.2) call abort
  17. !$omp end task
  18. !$omp task depend(out: x(4:4, 7:7))
  19. y = 3
  20. !$omp end task
  21. !$omp end taskgroup
  22. !$omp taskgroup
  23. !$omp task depend(in: x(4:, 8:))
  24. if (y.ne.3) call abort
  25. !$omp end task
  26. !$omp task depend(out: x(4:6, 8:12))
  27. y = 4
  28. !$omp end task
  29. !$omp end taskgroup
  30. !$omp end single
  31. !$omp end parallel
  32. if (y.ne.4) call abort
  33. end