! { dg-do compile } | |
SUBROUTINE WORK(N) | |
INTEGER N | |
END SUBROUTINE WORK | |
SUBROUTINE SUB3(N) | |
INTEGER N | |
CALL WORK(N) | |
!$OMP BARRIER | |
CALL WORK(N) | |
END SUBROUTINE SUB3 | |
SUBROUTINE SUB2(K) | |
INTEGER K | |
!$OMP PARALLEL SHARED(K) | |
CALL SUB3(K) | |
!$OMP END PARALLEL | |
END SUBROUTINE SUB2 | |
SUBROUTINE SUB1(N) | |
INTEGER N | |
INTEGER I | |
!$OMP PARALLEL PRIVATE(I) SHARED(N) | |
!$OMP DO | |
DO I = 1, N | |
CALL SUB2(I) | |
END DO | |
!$OMP END PARALLEL | |
END SUBROUTINE SUB1 | |
PROGRAM A15 | |
CALL SUB1(2) | |
CALL SUB2(2) | |
CALL SUB3(2) | |
END PROGRAM A15 |