1! { dg-do run } 2 3program main 4 implicit none 5 real a, b 6 real c 7 !$acc declare create (c) 8 9 a = 2.0 10 b = 0.0 11 12 !$acc parallel copy (a) create (b) default (none) 13 b = a 14 a = 1.0 15 a = a + b 16 !$acc end parallel 17 18 if (a .ne. 3.0) STOP 1 19 20 !$acc kernels copy (a) create (b) default (none) 21 b = a 22 a = 1.0 23 a = a + b 24 !$acc end kernels 25 26 if (a .ne. 4.0) STOP 2 27 28 !$acc parallel default (none) copy (a) create (b) 29 b = a 30 a = 1.0 31 a = a + b 32 !$acc end parallel 33 34 if (a .ne. 5.0) STOP 3 35 36 !$acc parallel default (none) copy (a) 37 c = a 38 a = 1.0 39 a = a + c 40 !$acc end parallel 41 42 if (a .ne. 6.0) STOP 4 43 44 !$acc data copy (a) 45 !$acc parallel default (none) 46 c = a 47 a = 1.0 48 a = a + c 49 !$acc end parallel 50 !$acc end data 51 52 if (a .ne. 7.0) STOP 5 53 54 ! The default (present) clause doesn't affect scalar variables; these will 55 ! still get an implicit copy clause added. 56 !$acc kernels default (present) 57 c = a 58 a = 1.0 59 a = a + c 60 !$acc end kernels 61 62 if (a .ne. 8.0) STOP 6 63 64end program main 65