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