a.31.1.f90   [plain text]


! { dg-do compile }

      SUBROUTINE A31_1(A, B, X, Y, N)
        INTEGER N
        REAL X(*), Y(*), A, B
!$OMP PARALLEL DO PRIVATE(I) SHARED(X, N) REDUCTION(+:A)
!$OMP& REDUCTION(MIN:B)
        DO I=1,N
           A = A + X(I)
           B = MIN(B, Y(I))
!  Note that some reductions can be expressed in
!  other forms. For example, the MIN could be expressed as
!  IF (B > Y(I)) B = Y(I)
         END DO
      END SUBROUTINE A31_1