! { dg-do run } ! { dg-require-effective-target tls_runtime } MODULE A22_MODULE8 REAL, POINTER :: WORK(:) SAVE WORK !$OMP THREADPRIVATE(WORK) END MODULE A22_MODULE8 SUBROUTINE SUB1(N) USE A22_MODULE8 !$OMP PARALLEL PRIVATE(THE_SUM) ALLOCATE(WORK(N)) CALL SUB2(THE_SUM) WRITE(*,*)THE_SUM !$OMP END PARALLEL END SUBROUTINE SUB1 SUBROUTINE SUB2(THE_SUM) USE A22_MODULE8 WORK(:) = 10 THE_SUM=SUM(WORK) END SUBROUTINE SUB2 PROGRAM A22_8_GOOD N = 10 CALL SUB1(N) END PROGRAM A22_8_GOOD