Skip gnat.dg/prot7.adb on hppa.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / deep-copy-5.f90
blob6843cf1d0fa1cabedb3f95c2e0d4153928fb3de0
1 ! { dg-do run }
3 ! Test of attach/detach, "enter data" inside "data", and subarray.
5 program dtype
6 implicit none
7 integer, parameter :: n = 512
8 type mytype
9 integer, allocatable :: a(:)
10 integer, allocatable :: b(:)
11 end type mytype
12 integer i
14 type(mytype) :: var
16 allocate(var%a(1:n))
17 allocate(var%b(1:n))
19 !$acc data copy(var)
21 do i = 1, n
22 var%a(i) = 0
23 var%b(i) = 0
24 end do
26 !$acc enter data copyin(var%a(5:n - 5), var%b(5:n - 5))
28 !$acc parallel loop
29 do i = 5,n - 5
30 var%a(i) = i
31 var%b(i) = i * 2
32 end do
33 !$acc end parallel loop
35 !$acc exit data copyout(var%a(5:n - 5), var%b(5:n - 5))
37 !$acc end data
39 do i = 1,4
40 if (var%a(i) .ne. 0) stop 1
41 if (var%b(i) .ne. 0) stop 2
42 end do
44 do i = 5,n - 5
45 if (i .ne. var%a(i)) stop 3
46 if (i * 2 .ne. var%b(i)) stop 4
47 end do
49 do i = n - 4,n
50 if (var%a(i) .ne. 0) stop 5
51 if (var%b(i) .ne. 0) stop 6
52 end do
54 deallocate(var%a)
55 deallocate(var%b)
57 end program dtype