view libgomp/testsuite/libgomp.fortran/reference1.f90 @ 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 84e7813d76e9
line wrap: on
line source

! { dg-do run }
!$ use omp_lib

  integer :: i, j, k
  double precision :: d
  i = 6
  j = 19
  k = 0
  d = 24.5
  call test (i, j, k, d)
  if (i .ne. 38) call abort
  if (iand (k, 255) .ne. 0) call abort
  if (iand (k, 65280) .eq. 0) then
    if (k .ne. 65536 * 4) call abort
  end if
contains
  subroutine test (i, j, k, d)
    integer :: i, j, k
    double precision :: d

!$omp parallel firstprivate (d) private (j) num_threads (4) reduction (+:k)
    if (i .ne. 6 .or. d .ne. 24.5 .or. k .ne. 0) k = k + 1
    if (omp_get_num_threads () .ne. 4) k = k + 256
    d = d / 2
    j = 8
    k = k + 65536
!$omp barrier
    if (d .ne. 12.25 .or. j .ne. 8) k = k + 1
!$omp single
    i = i + 32
!$omp end single nowait
!$omp end parallel
  end subroutine test
end