! { dg-do run } program test implicit none real, allocatable :: a(:), b(:) integer :: i a = [(i, i = 1, 100)] allocate(b, mold=a) b = 0 !$omp target simd map(to:a) map(from:b) do i = 1, size(a) b(i) = 5.0 * a(i) end do if (any (b - 5.0 *a > 10.0*epsilon(a))) stop 1 !$omp target simd map(to:a) map(from:b) do i = 1, size(a) b(i) = 2.0 * a(i) end do !$omp end target simd if (any (b - 2.0 *a > 10.0*epsilon(a))) stop 2 end program test