| ! { dg-do run } | |
| PROGRAM A2 | |
| INCLUDE "omp_lib.h" ! or USE OMP_LIB | |
| INTEGER X | |
| X=2 | |
| !$OMP PARALLEL NUM_THREADS(2) SHARED(X) | |
| IF (OMP_GET_THREAD_NUM() .EQ. 0) THEN | |
| X=5 | |
| ELSE | |
| ! PRINT 1: The following read of x has a race | |
| PRINT *,"1: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X | |
| ENDIF | |
| !$OMP BARRIER | |
| IF (OMP_GET_THREAD_NUM() .EQ. 0) THEN | |
| ! PRINT 2 | |
| PRINT *,"2: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X | |
| ELSE | |
| ! PRINT 3 | |
| PRINT *,"3: THREAD# ", OMP_GET_THREAD_NUM(), "X = ", X | |
| ENDIF | |
| !$OMP END PARALLEL | |
| END PROGRAM A2 |