0
|
1 ! { dg-do compile }
|
|
2 SUBROUTINE WORK(N)
|
|
3 INTEGER N
|
|
4 END SUBROUTINE WORK
|
|
5 SUBROUTINE SUB3(N)
|
|
6 INTEGER N
|
|
7 CALL WORK(N)
|
|
8 !$OMP BARRIER
|
|
9 CALL WORK(N)
|
|
10 END SUBROUTINE SUB3
|
|
11 SUBROUTINE SUB2(K)
|
|
12 INTEGER K
|
|
13 !$OMP PARALLEL SHARED(K)
|
|
14 CALL SUB3(K)
|
|
15 !$OMP END PARALLEL
|
|
16 END SUBROUTINE SUB2
|
|
17 SUBROUTINE SUB1(N)
|
|
18 INTEGER N
|
|
19 INTEGER I
|
|
20 !$OMP PARALLEL PRIVATE(I) SHARED(N)
|
|
21 !$OMP DO
|
|
22 DO I = 1, N
|
|
23 CALL SUB2(I)
|
|
24 END DO
|
|
25 !$OMP END PARALLEL
|
|
26 END SUBROUTINE SUB1
|
|
27 PROGRAM A15
|
|
28 CALL SUB1(2)
|
|
29 CALL SUB2(2)
|
|
30 CALL SUB3(2)
|
|
31 END PROGRAM A15
|