blob: 0564e90e08eac0c1004612381d37fa586c4ea5b7 [file] [log] [blame]
! { dg-do run }
integer, parameter :: n = 1000
integer, parameter :: c = 100
integer :: i, j
real :: a(n)
do i = 1, n
a(i) = i
end do
!$omp parallel
!$omp single
do i = 1, n, c
!$omp task shared(a)
!$omp target map(a(i:i+c-1))
!$omp parallel do
do j = i, i + c - 1
a(j) = foo (a(j))
end do
!$omp end target
!$omp end task
end do
!$omp end single
!$omp end parallel
do i = 1, n
if (a(i) /= i + 1) call abort
end do
contains
real function foo (x)
!$omp declare target
real, intent(in) :: x
foo = x + 1
end function foo
end