URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 273 |
Rev 338 |
! PR fortran/42162
|
! PR fortran/42162
|
! { dg-do run }
|
! { dg-do run }
|
|
|
subroutine sub1(k, a)
|
subroutine sub1(k, a)
|
implicit none
|
implicit none
|
integer :: k, a(3)
|
integer :: k, a(3)
|
!$omp do
|
!$omp do
|
do k=1,3
|
do k=1,3
|
a(k) = a(k) + 1
|
a(k) = a(k) + 1
|
enddo
|
enddo
|
!$omp end do
|
!$omp end do
|
end subroutine sub1
|
end subroutine sub1
|
|
|
subroutine sub2(k, a)
|
subroutine sub2(k, a)
|
implicit none
|
implicit none
|
integer :: k, a(3)
|
integer :: k, a(3)
|
!$omp do private (k)
|
!$omp do private (k)
|
do k=1,3
|
do k=1,3
|
a(k) = a(k) + 1
|
a(k) = a(k) + 1
|
enddo
|
enddo
|
!$omp end do
|
!$omp end do
|
end subroutine sub2
|
end subroutine sub2
|
|
|
subroutine sub3(k, a)
|
subroutine sub3(k, a)
|
implicit none
|
implicit none
|
integer :: k, a(3)
|
integer :: k, a(3)
|
!$omp do lastprivate (k)
|
!$omp do lastprivate (k)
|
do k=1,3
|
do k=1,3
|
a(k) = a(k) + 1
|
a(k) = a(k) + 1
|
enddo
|
enddo
|
!$omp end do
|
!$omp end do
|
end subroutine sub3
|
end subroutine sub3
|
|
|
program pr42162
|
program pr42162
|
implicit none
|
implicit none
|
integer :: k, a(3), b(3), c(3)
|
integer :: k, a(3), b(3), c(3)
|
a = 1
|
a = 1
|
b = 2
|
b = 2
|
c = 3
|
c = 3
|
k = 3
|
k = 3
|
!$omp parallel num_threads(3)
|
!$omp parallel num_threads(3)
|
call sub1 (k, a)
|
call sub1 (k, a)
|
!$omp end parallel
|
!$omp end parallel
|
k = 4
|
k = 4
|
!$omp parallel num_threads(3)
|
!$omp parallel num_threads(3)
|
call sub2 (k, b)
|
call sub2 (k, b)
|
!$omp end parallel
|
!$omp end parallel
|
k = 10
|
k = 10
|
!$omp parallel num_threads(3)
|
!$omp parallel num_threads(3)
|
call sub3 (k, c)
|
call sub3 (k, c)
|
!$omp end parallel
|
!$omp end parallel
|
if (k.ne.4.or.any(a.ne.2).or.any(b.ne.3).or.any(c.ne.4)) call abort
|
if (k.ne.4.or.any(a.ne.2).or.any(b.ne.3).or.any(c.ne.4)) call abort
|
end
|
end
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.