1! { dg-do compile }
2
3       SUBROUTINE A31_2 (A, B, X, Y, N)
4         INTEGER N
5         REAL X(*), Y(*), A, B, A_P, B_P
6!$OMP PARALLEL SHARED(X, Y, N, A, B) PRIVATE(A_P, B_P)
7        A_P = 0.0
8        B_P = HUGE(B_P)
9!$OMP DO PRIVATE(I)
10        DO I=1,N
11          A_P = A_P + X(I)
12          B_P = MIN(B_P, Y(I))
13        ENDDO
14!$OMP END DO
15!$OMP CRITICAL
16          A = A + A_P
17          B = MIN(B, B_P)
18!$OMP END CRITICAL
19!$OMP END PARALLEL
20      END SUBROUTINE A31_2
21