41 lines
898 B
Fortran
41 lines
898 B
Fortran
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
|