| ! { dg-do run } |
| |
| program main |
| implicit none |
| real a, b |
| real c |
| !$acc declare create (c) |
| |
| a = 2.0 |
| b = 0.0 |
| |
| !$acc parallel copy (a) create (b) default (none) |
| b = a |
| a = 1.0 |
| a = a + b |
| !$acc end parallel |
| |
| if (a .ne. 3.0) STOP 1 |
| |
| !$acc kernels copy (a) create (b) default (none) |
| b = a |
| a = 1.0 |
| a = a + b |
| !$acc end kernels |
| |
| if (a .ne. 4.0) STOP 2 |
| |
| !$acc parallel default (none) copy (a) create (b) |
| b = a |
| a = 1.0 |
| a = a + b |
| !$acc end parallel |
| |
| if (a .ne. 5.0) STOP 3 |
| |
| !$acc parallel default (none) copy (a) |
| c = a |
| a = 1.0 |
| a = a + c |
| !$acc end parallel |
| |
| if (a .ne. 6.0) STOP 4 |
| |
| !$acc data copy (a) |
| !$acc parallel default (none) |
| c = a |
| a = 1.0 |
| a = a + c |
| !$acc end parallel |
| !$acc end data |
| |
| if (a .ne. 7.0) STOP 5 |
| |
| ! The default (present) clause doesn't affect scalar variables; these will |
| ! still get an implicit copy clause added. |
| !$acc kernels default (present) |
| c = a |
| a = 1.0 |
| a = a + c |
| !$acc end kernels |
| |
| if (a .ne. 8.0) STOP 6 |
| |
| end program main |