| ! { 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 |