Retro68/gcc/libgomp/testsuite/libgomp.oacc-fortran/declare-3.f90
2018-12-28 16:30:48 +01:00

70 lines
1.1 KiB
Fortran

! { dg-do run }
! { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } }
module globalvars
implicit none
real b
!$acc declare link (b)
end module globalvars
program test
use openacc
use globalvars
implicit none
real a
real c
!$acc declare link (c)
if (acc_is_present (b) .neqv. .false.) STOP 1
if (acc_is_present (c) .neqv. .false.) STOP 2
a = 0.0
b = 1.0
!$acc parallel copy (a) copyin (b)
b = b + 4.0
a = b
!$acc end parallel
if (a .ne. 5.0) STOP 3
if (acc_is_present (b) .neqv. .false.) STOP 4
a = 0.0
!$acc parallel copy (a) create (b)
b = 4.0
a = b
!$acc end parallel
if (a .ne. 4.0) STOP 5
if (acc_is_present (b) .neqv. .false.) STOP 6
a = 0.0
!$acc parallel copy (a) copy (b)
b = 4.0
a = b
!$acc end parallel
if (a .ne. 4.0) STOP 7
if (b .ne. 4.0) STOP 8
if (acc_is_present (b) .neqv. .false.) STOP 9
a = 0.0
!$acc parallel copy (a) copy (b) copy (c)
b = 4.0
c = b
a = c
!$acc end parallel
if (a .ne. 4.0) STOP 10
if (acc_is_present (b) .neqv. .false.) STOP 11
end program test