mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-03 10:49:58 +00:00
34 lines
998 B
Fortran
34 lines
998 B
Fortran
C******************************************************************************
|
|
C FILE: omp_reduction.f
|
|
C DESCRIPTION:
|
|
C OpenMP Example - Combined Parallel Loop Reduction - Fortran Version
|
|
C This example demonstrates a sum reduction within a combined parallel loop
|
|
C construct. Notice that default data element scoping is assumed - there
|
|
C are no clauses specifying shared or private variables. OpenMP will
|
|
C automatically make loop index variables private within team threads, and
|
|
C global variables shared.
|
|
C AUTHOR: Blaise Barney 5/99
|
|
C LAST REVISED:
|
|
C******************************************************************************
|
|
|
|
PROGRAM REDUCTION
|
|
|
|
INTEGER I, N
|
|
REAL A(100), B(100), SUM
|
|
|
|
! Some initializations
|
|
N = 100
|
|
DO I = 1, N
|
|
A(I) = I *1.0
|
|
B(I) = A(I)
|
|
ENDDO
|
|
SUM = 0.0
|
|
|
|
!$OMP PARALLEL DO REDUCTION(+:SUM)
|
|
DO I = 1, N
|
|
SUM = SUM + (A(I) * B(I))
|
|
ENDDO
|
|
|
|
PRINT *, ' Sum = ', SUM
|
|
END
|