| C PR fortran/25162 |
| C { dg-do run } |
| C { dg-require-effective-target tls_runtime } |
| PROGRAM PR25162 |
| CALL TEST1 |
| CALL TEST2 |
| END |
| SUBROUTINE TEST1 |
| DOUBLE PRECISION BPRIM |
| COMMON /TESTCOM/ BPRIM(100) |
| C$OMP THREADPRIVATE(/TESTCOM/) |
| INTEGER I |
| DO I = 1, 100 |
| BPRIM( I ) = DBLE( I ) |
| END DO |
| RETURN |
| END |
| SUBROUTINE TEST2 |
| DOUBLE PRECISION BPRIM |
| COMMON /TESTCOM/ BPRIM(100) |
| C$OMP THREADPRIVATE(/TESTCOM/) |
| INTEGER I, IDUM(50) |
| DO I = 1, 50 |
| IDUM(I) = I |
| END DO |
| C$OMP PARALLEL COPYIN(/TESTCOM/) NUM_THREADS(4) |
| CALL TEST3 |
| C$OMP END PARALLEL |
| RETURN |
| END |
| SUBROUTINE TEST3 |
| DOUBLE PRECISION BPRIM |
| COMMON /TESTCOM/ BPRIM(100) |
| C$OMP THREADPRIVATE(/TESTCOM/) |
| INTEGER K |
| DO K = 1, 10 |
| IF (K.NE.BPRIM(K)) CALL ABORT |
| END DO |
| RETURN |
| END |