1! { dg-do run } 2 3 use omp_lib 4 integer :: i, j, k 5 logical :: l 6 common /b/ i, j 7 i = 4 8 j = 8 9 l = .false. 10!$omp parallel private (k) firstprivate (i) shared (j) num_threads (2) & 11!$omp& reduction (.or.:l) 12 if (i .ne. 4 .or. j .ne. 8) l = .true. 13!$omp barrier 14 k = omp_get_thread_num () 15 if (k .eq. 0) then 16 i = 14 17 j = 15 18 end if 19!$omp barrier 20 if (k .eq. 1) then 21 if (i .ne. 4 .or. j .ne. 15) l = .true. 22 i = 24 23 j = 25 24 end if 25!$omp barrier 26 if (j .ne. 25 .or. i .ne. (k * 10 + 14)) l = .true. 27!$omp end parallel 28 if (l .or. j .ne. 25) call abort 29end 30