Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.fortran/omp_orphan.f @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +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