stack.f90 479 B

12345678910111213141516171819202122
  1. ! { dg-do run }
  2. program stack
  3. implicit none
  4. integer id
  5. integer ilocs(2)
  6. integer omp_get_thread_num, foo
  7. call omp_set_num_threads (2)
  8. !$omp parallel private (id)
  9. id = omp_get_thread_num() + 1
  10. ilocs(id) = foo()
  11. !$omp end parallel
  12. ! Check that the two threads are not sharing a location for
  13. ! the array x in foo()
  14. if (ilocs(1) .eq. ilocs(2)) call abort
  15. end program stack
  16. integer function foo ()
  17. implicit none
  18. real x(100,100)
  19. foo = loc(x)
  20. end function foo