30 lines
947 B
Fortran
30 lines
947 B
Fortran
! { dg-do compile }
|
|
|
|
SUBROUTINE SUB1(X)
|
|
DIMENSION X(10)
|
|
! This use of X does not conform to the
|
|
! specification. It would be legal Fortran 90,
|
|
! but the OpenMP private directive allows the
|
|
! compiler to break the sequence association that
|
|
! A had with the rest of the common block.
|
|
FORALL (I = 1:10) X(I) = I
|
|
END SUBROUTINE SUB1
|
|
PROGRAM A28_5
|
|
COMMON /BLOCK5/ A
|
|
DIMENSION B(10)
|
|
EQUIVALENCE (A,B(1))
|
|
! the common block has to be at least 10 words
|
|
A=0
|
|
!$OMP PARALLEL PRIVATE(/BLOCK5/)
|
|
! Without the private clause,
|
|
! we would be passing a member of a sequence
|
|
! that is at least ten elements long.
|
|
! With the private clause, A may no longer be
|
|
! sequence-associated.
|
|
CALL SUB1(A)
|
|
!$OMP MASTER
|
|
PRINT *, A
|
|
!$OMP END MASTER
|
|
!$OMP END PARALLEL
|
|
END PROGRAM A28_5
|