xref: /openbsd-src/gnu/gcc/libgomp/testsuite/libgomp.fortran/appendix-a/a.2.1.f90 (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert! { dg-do run }
2*404b540aSrobertPROGRAM A2
3*404b540aSrobert  INCLUDE "omp_lib.h"      ! or USE OMP_LIB
4*404b540aSrobert  INTEGER X
5*404b540aSrobert  X=2
6*404b540aSrobert!$OMP PARALLEL NUM_THREADS(2) SHARED(X)
7*404b540aSrobert    IF (OMP_GET_THREAD_NUM() .EQ. 0) THEN
8*404b540aSrobert       X=5
9*404b540aSrobert    ELSE
10*404b540aSrobert    ! PRINT 1: The following read of x has a race
11*404b540aSrobert      PRINT *,"1: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X
12*404b540aSrobert    ENDIF
13*404b540aSrobert!$OMP BARRIER
14*404b540aSrobert    IF (OMP_GET_THREAD_NUM() .EQ. 0) THEN
15*404b540aSrobert    ! PRINT 2
16*404b540aSrobert      PRINT *,"2: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X
17*404b540aSrobert    ELSE
18*404b540aSrobert    ! PRINT 3
19*404b540aSrobert      PRINT *,"3: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X
20*404b540aSrobert    ENDIF
21*404b540aSrobert!$OMP END PARALLEL
22*404b540aSrobertEND PROGRAM A2
23