1! { dg-do run } 2 3program test 4 implicit none 5 real, allocatable :: a(:), b(:) 6 integer :: i 7 8 a = [(i, i = 1, 100)] 9 allocate(b, mold=a) 10 b = 0 11 12 !$omp target simd map(to:a) map(from:b) 13 do i = 1, size(a) 14 b(i) = 5.0 * a(i) 15 end do 16 17 if (any (b - 5.0 *a > 10.0*epsilon(a))) stop 1 18 19 !$omp target simd map(to:a) map(from:b) 20 do i = 1, size(a) 21 b(i) = 2.0 * a(i) 22 end do 23 !$omp end target simd 24 25 if (any (b - 2.0 *a > 10.0*epsilon(a))) stop 2 26end program test 27