! { 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) call abort !$acc kernels copy (a) create (b) default (none) b = a a = 1.0 a = a + b !$acc end kernels if (a .ne. 4.0) call abort !$acc parallel default (none) copy (a) create (b) b = a a = 1.0 a = a + b !$acc end parallel if (a .ne. 5.0) call abort !$acc parallel default (none) copy (a) c = a a = 1.0 a = a + c !$acc end parallel if (a .ne. 6.0) call abort !$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) call abort end program main