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
32