mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-11 03:52:59 +00:00
30 lines
585 B
Fortran
30 lines
585 B
Fortran
|
! { dg-do run }
|
||
|
|
||
|
use omp_lib
|
||
|
integer :: i, j, k
|
||
|
logical :: l
|
||
|
common /b/ i, j
|
||
|
i = 4
|
||
|
j = 8
|
||
|
l = .false.
|
||
|
!$omp parallel private (k) firstprivate (i) shared (j) num_threads (2) &
|
||
|
!$omp& reduction (.or.:l)
|
||
|
if (i .ne. 4 .or. j .ne. 8) l = .true.
|
||
|
!$omp barrier
|
||
|
k = omp_get_thread_num ()
|
||
|
if (k .eq. 0) then
|
||
|
i = 14
|
||
|
j = 15
|
||
|
end if
|
||
|
!$omp barrier
|
||
|
if (k .eq. 1) then
|
||
|
if (i .ne. 4 .or. j .ne. 15) l = .true.
|
||
|
i = 24
|
||
|
j = 25
|
||
|
end if
|
||
|
!$omp barrier
|
||
|
if (j .ne. 25 .or. i .ne. (k * 10 + 14)) l = .true.
|
||
|
!$omp end parallel
|
||
|
if (l .or. j .ne. 25) call abort
|
||
|
end
|