! { dg-do compile } SUBROUTINE WORK(I, J) INTEGER I, J END SUBROUTINE WORK SUBROUTINE WORK1(I, N) INTEGER J !$OMP PARALLEL DEFAULT(SHARED) !$OMP DO DO J = 1, N CALL WORK(I,J) END DO !$OMP END PARALLEL END SUBROUTINE WORK1 SUBROUTINE GOOD_NESTING2(N) INTEGER N !$OMP PARALLEL DEFAULT(SHARED) !$OMP DO DO I = 1, N CALL WORK1(I, N) END DO !$OMP END PARALLEL END SUBROUTINE GOOD_NESTING2