1! { dg-do run } 2! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } } 3 4module globalvars 5 implicit none 6 real b 7 !$acc declare link (b) 8end module globalvars 9 10program test 11 use openacc 12 use globalvars 13 implicit none 14 15 real a 16 real c 17 !$acc declare link (c) 18 19 if (acc_is_present (b) .neqv. .false.) STOP 1 20 if (acc_is_present (c) .neqv. .false.) STOP 2 21 22 a = 0.0 23 b = 1.0 24 25 !$acc parallel copy (a) copyin (b) 26 b = b + 4.0 27 a = b 28 !$acc end parallel 29 30 if (a .ne. 5.0) STOP 3 31 32 if (acc_is_present (b) .neqv. .false.) STOP 4 33 34 a = 0.0 35 36 !$acc parallel copy (a) create (b) 37 b = 4.0 38 a = b 39 !$acc end parallel 40 41 if (a .ne. 4.0) STOP 5 42 43 if (acc_is_present (b) .neqv. .false.) STOP 6 44 45 a = 0.0 46 47 !$acc parallel copy (a) copy (b) 48 b = 4.0 49 a = b 50 !$acc end parallel 51 52 if (a .ne. 4.0) STOP 7 53 if (b .ne. 4.0) STOP 8 54 55 if (acc_is_present (b) .neqv. .false.) STOP 9 56 57 a = 0.0 58 59 !$acc parallel copy (a) copy (b) copy (c) 60 b = 4.0 61 c = b 62 a = c 63 !$acc end parallel 64 65 if (a .ne. 4.0) STOP 10 66 67 if (acc_is_present (b) .neqv. .false.) STOP 11 68 69end program test 70