3 ! Test of attach/detach with scalar elements and nested derived types.
7 integer, parameter :: n
= 512
10 integer, allocatable
:: q(:)
13 integer, allocatable
:: a(:)
14 integer, allocatable
:: c
, d
15 integer, allocatable
:: b(:)
27 allocate(var
%s
%q(1:n
))
35 !$acc enter data copyin(var)
43 !$acc data copy(var%a(5:n - 5), var%b(5:n - 5), var%c, var%d) &
46 !$acc parallel loop default(none) present(var)
54 !$acc end parallel loop
58 !$acc exit data copyout(var)
61 if (var
%a(i
) .ne
. 0) stop 1
62 if (var
%b(i
) .ne
. 0) stop 2
63 if (var
%s
%q(i
) .ne
. 0) stop 3
67 if (i
.ne
. var
%a(i
)) stop 4
68 if (i
* 2 .ne
. var
%b(i
)) stop 5
69 if (i
* 3 .ne
. var
%s
%q(i
)) stop 6
73 if (var
%a(i
) .ne
. 0) stop 7
74 if (var
%b(i
) .ne
. 0) stop 8
75 if (var
%s
%q(i
) .ne
. 0) stop 9
78 if (var
%c
.ne
. 16) stop 10
79 if (var
%d
.ne
. 20) stop 11
80 if (var
%s
%g
.ne
. 100 .or
. var
%s
%h
.ne
. 101) stop 12
81 if (var
%f
.ne
. 7) stop 13