Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.fortran/omp_atomic2.f90 @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
! { dg-do run } ! { dg-options "-std=legacy" } 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) stop 1 if (any (r .ne. 33)) stop 2 i = 1 j = 18 k = 23 !$omp atomic i = min (i, j, k, n) if (i .ne. 1) stop 3 !$omp atomic i = max (j, n, k, i) if (i .ne. 23) stop 4 a = 1 b = 18 c = 23 !$omp atomic a = min (a, b, c) if (a .ne. 1) stop 5 !$omp atomic a = max (a, b, c) if (a .ne. 23) stop 6 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