OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.fortran/] [allocatable6.f90] - Blame information for rev 735

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 735 jeremybenn
! PR fortran/46874
2
! { dg-do run }
3
 
4
  interface
5
    subroutine sub (a, b, c, d, n)
6
      integer :: n
7
      integer, allocatable :: a(:), b(:), c(:), d(:)
8
    end subroutine
9
  end interface
10
 
11
  integer, allocatable :: a(:), b(:), c(:), d(:)
12
  integer :: i, j
13
  allocate (a(50), b(50), c(50), d(50))
14
  do i = 1, 50
15
    a(i) = 2 + modulo (i, 7)
16
    b(i) = 179 - modulo (i, 11)
17
  end do
18
  c = 0
19
  d = 2147483647
20
  call sub (a, b, c, d, 50)
21
  do i = 1, 50
22
    j = 0
23
    if (i .eq. 3) then
24
      j = 8
25
    else if (i .gt. 1 .and. i .lt. 9) then
26
      j = 7
27
    end if
28
    if (c(i) .ne. j) call abort
29
    j = 179 - modulo (i, 11)
30
    if (i .gt. 1 .and. i .lt. 9) j = i
31
    if (d(i) .ne. j) call abort
32
  end do
33
  deallocate (a, b, c, d)
34
end
35
 
36
subroutine sub (a, b, c, d, n)
37
  integer :: n
38
  integer, allocatable :: a(:), b(:), c(:), d(:)
39
!$omp parallel do shared(a, b) reduction(+:c) reduction(min:d)
40
  do i = 1, n
41
    c(a(i)) = c(a(i)) + 1
42
    d(i) = min(d(i), b(i))
43
    d(a(i)) = min(d(a(i)), a(i))
44
  end do
45
end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.