Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.fortran/omp_atomic2.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 | 84e7813d76e9 |
line wrap: on
line source
! { dg-do run } real, dimension (20) :: r integer, dimension (20) :: d integer :: i, j, k, n integer (kind = 2) :: a, b, c do 10 i = 1, 20 r(i) = i 10 d(i) = 21 - i n = 20 call foo (r, d, n) if (n .ne. 22) call abort if (any (r .ne. 33)) call abort i = 1 j = 18 k = 23 !$omp atomic i = min (i, j, k, n) if (i .ne. 1) call abort !$omp atomic i = max (j, n, k, i) if (i .ne. 23) call abort a = 1 b = 18 c = 23 !$omp atomic a = min (a, b, c) if (a .ne. 1) call abort !$omp atomic a = max (a, b, c) if (a .ne. 23) call abort contains function bar (i) real bar integer i bar = 12.0 + i end function bar subroutine foo (x, y, n) integer i, y (*), n real x (*) do i = 1, n !$omp atomic x(y(i)) = x(y(i)) + bar (i) end do !$omp atomic n = n + 2 end subroutine foo end