| ! { 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 |