Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90 @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
line wrap: on
line source
! { dg-do run } REAL FUNCTION WORK1(I) INTEGER I WORK1 = 1.0 * I RETURN END FUNCTION WORK1 REAL FUNCTION WORK2(I) INTEGER I WORK2 = 2.0 * I RETURN END FUNCTION WORK2 SUBROUTINE SUBA16(X, Y, INDEX, N) REAL X(*), Y(*) INTEGER INDEX(*), N INTEGER I !$OMP PARALLEL DO SHARED(X, Y, INDEX, N) DO I=1,N !$OMP ATOMIC X(INDEX(I)) = X(INDEX(I)) + WORK1(I) Y(I) = Y(I) + WORK2(I) ENDDO END SUBROUTINE SUBA16 PROGRAM A16 REAL X(1000), Y(10000) INTEGER INDEX(10000) INTEGER I DO I=1,10000 INDEX(I) = MOD(I, 1000) + 1 Y(I) = 0.0 ENDDO DO I = 1,1000 X(I) = 0.0 ENDDO CALL SUBA16(X, Y, INDEX, 10000) DO I = 1,10 PRINT *, "X(", I, ") = ", X(I), ", Y(", I, ") = ", Y(I) ENDDO END PROGRAM A16