! { dg-do compile } SUBROUTINE A31_2 (A, B, X, Y, N) INTEGER N REAL X(*), Y(*), A, B, A_P, B_P !$OMP PARALLEL SHARED(X, Y, N, A, B) PRIVATE(A_P, B_P) A_P = 0.0 B_P = HUGE(B_P) !$OMP DO PRIVATE(I) DO I=1,N A_P = A_P + X(I) B_P = MIN(B_P, Y(I)) ENDDO !$OMP END DO !$OMP CRITICAL A = A + A_P B = MIN(B, B_P) !$OMP END CRITICAL !$OMP END PARALLEL END SUBROUTINE A31_2