0
|
1 ! { dg-do compile }
|
|
2
|
|
3 SUBROUTINE SUB1(X)
|
|
4 DIMENSION X(10)
|
|
5 ! This use of X does not conform to the
|
|
6 ! specification. It would be legal Fortran 90,
|
|
7 ! but the OpenMP private directive allows the
|
|
8 ! compiler to break the sequence association that
|
|
9 ! A had with the rest of the common block.
|
|
10 FORALL (I = 1:10) X(I) = I
|
|
11 END SUBROUTINE SUB1
|
|
12 PROGRAM A28_5
|
|
13 COMMON /BLOCK5/ A
|
|
14 DIMENSION B(10)
|
|
15 EQUIVALENCE (A,B(1))
|
|
16 ! the common block has to be at least 10 words
|
|
17 A=0
|
|
18 !$OMP PARALLEL PRIVATE(/BLOCK5/)
|
|
19 ! Without the private clause,
|
|
20 ! we would be passing a member of a sequence
|
|
21 ! that is at least ten elements long.
|
|
22 ! With the private clause, A may no longer be
|
|
23 ! sequence-associated.
|
|
24 CALL SUB1(A)
|
|
25 !$OMP MASTER
|
|
26 PRINT *, A
|
|
27 !$OMP END MASTER
|
|
28 !$OMP END PARALLEL
|
|
29 END PROGRAM A28_5
|