Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.fortran/omp_orphan.f @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
C****************************************************************************** C FILE: omp_orphan.f C DESCRIPTION: C OpenMP Example - Parallel region with an orphaned directive - Fortran C Version C This example demonstrates a dot product being performed by an orphaned C loop reduction construct. Scoping of the reduction variable is critical. C AUTHOR: Blaise Barney 5/99 C LAST REVISED: C****************************************************************************** PROGRAM ORPHAN COMMON /DOTDATA/ A, B, SUM INTEGER I, VECLEN PARAMETER (VECLEN = 100) REAL*8 A(VECLEN), B(VECLEN), SUM DO I=1, VECLEN A(I) = 1.0 * I B(I) = A(I) ENDDO SUM = 0.0 !$OMP PARALLEL CALL DOTPROD !$OMP END PARALLEL WRITE(*,*) "Sum = ", SUM END SUBROUTINE DOTPROD COMMON /DOTDATA/ A, B, SUM INTEGER I, TID, OMP_GET_THREAD_NUM, VECLEN PARAMETER (VECLEN = 100) REAL*8 A(VECLEN), B(VECLEN), SUM TID = OMP_GET_THREAD_NUM() !$OMP DO REDUCTION(+:SUM) DO I=1, VECLEN SUM = SUM + (A(I)*B(I)) PRINT *, ' TID= ',TID,'I= ',I ENDDO RETURN END