| ! { dg-do run } |
| |
| program main |
| implicit none |
| integer, allocatable, dimension(:) :: AA, BB, CC, DD |
| integer :: i, N = 20 |
| |
| allocate(BB(N)) |
| AA = [(i, i=1,N)] |
| |
| !$omp target enter data map(alloc: BB) |
| !$omp target enter data map(to: AA) |
| |
| !$omp target |
| BB = 3 * AA |
| !$omp end target |
| |
| !$omp target exit data map(delete: AA) |
| !$omp target exit data map(from: BB) |
| |
| if (any (BB /= [(3*i, i=1,N)])) stop 1 |
| if (any (AA /= [(i, i=1,N)])) stop 2 |
| |
| |
| CC = 31 * BB |
| DD = [(-i, i=1,N)] |
| |
| !$omp target enter data map(to: CC) map(alloc: DD) |
| |
| !$omp target |
| DD = 5 * CC |
| !$omp end target |
| |
| !$omp target exit data map(delete: CC) map(from: DD) |
| |
| if (any (CC /= [(31*3*i, i=1,N)])) stop 3 |
| if (any (DD /= [(31*3*5*i, i=1,N)])) stop 4 |
| end |