aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libgomp/testsuite/libgomp.fortran/pr27395-2.f90
blob: b3cb255f6dd7ce13ccdad6521a35a367f45b7c94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
! PR fortran/27395
! { dg-do run }

program pr27395_2
  implicit none
  integer, parameter :: n=10,m=1001
  integer :: i
  call foo(n,m)
end program pr27395_2

subroutine foo(n,m)
  use omp_lib, only : omp_get_thread_num
  implicit none
  integer, intent(in) :: n,m
  integer :: i,j
  integer, dimension(n) :: sumarray
  sumarray(:)=0
!$OMP PARALLEL DEFAULT(shared) NUM_THREADS(4)
!$OMP DO PRIVATE(j,i), REDUCTION(+:sumarray)
  do j=1,m
    do i=1,n
      sumarray(i)=sumarray(i)+i
    end do
  end do
!$OMP END DO
!$OMP END PARALLEL
  do i=1,n
    if (sumarray(i).ne.m*i) call abort
  end do
end subroutine foo