https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108336

--- Comment #4 from anlauf at gcc dot gnu.org ---
There is one flaw with the testcase: when OMP_NUM_THREADS > n1,
array elements threadval(n1+1:OMP_NUM_THREADS) are filled with
undefined values.

When I replace the line

   if(omp_get_thread_num() /= 0) call random_number(x1)

by the following loop:

   do i = 1, nt
      if (i > 1 .and. omp_get_thread_num() == i-1) call random_number(x1)
!$omp barrier
   end do

and furthermore do

   print*, minval(threadval(1:n1)), maxval(threadval(1:n1))

I get repeatable results.

Am I missing something?

Reply via email to