! @@name: reduction.2f ! @@type: F-free ! @@compilable: yes ! @@linkable: no ! @@expect: success SUBROUTINE REDUCTION2(A, B, C, D, X, Y, N) REAL :: X(*), A, D INTEGER :: Y(*), N, B, C REAL :: A_P, D_P INTEGER :: I, B_P, C_P A = 0 B = 0 C = Y(1) D = X(1) !$OMP PARALLEL SHARED(X, Y, A, B, C, D, N) & !$OMP& PRIVATE(A_P, B_P, C_P, D_P) A_P = 0.0 B_P = 0 C_P = HUGE(C_P) D_P = -HUGE(D_P) !$OMP DO PRIVATE(I) DO I=1,N A_P = A_P + X(I) B_P = IEOR(B_P, Y(I)) C_P = MIN(C_P, Y(I)) IF (D_P < X(I)) D_P = X(I) END DO !$OMP CRITICAL A = A + A_P B = IEOR(B, B_P) C = MIN(C, C_P) D = MAX(D, D_P) !$OMP END CRITICAL !$OMP END PARALLEL END SUBROUTINE REDUCTION2