! { dg-do run } ! { dg-require-effective-target offload_device } program e_57_2 use omp_lib, only: omp_is_initial_device, omp_get_num_devices integer, parameter :: N = 10 integer :: i, num logical :: offload(N) num = omp_get_num_devices () !$omp parallel do do i = 1, N !$omp target device(i-1) map(from: offload(i:i)) offload(i) = omp_is_initial_device () !$omp end target end do do i = 1, num if (offload(i)) STOP 1 end do do i = num+1, N if (.not. offload(i)) STOP 2 end do end program