1type :: type1
2  character(len=35) :: a
3end type type1
4
5type :: type2
6  character(len=35), pointer :: b
7end type type2
8
9type :: aux1
10  character(len=22) :: y
11end type aux1
12
13type, extends(aux1) :: aux
14  character(len=33) :: x
15end type aux
16
17type :: type3
18  class(aux), pointer :: c(:)
19end type type3
20
21type :: type4
22  integer, pointer :: d(:)
23end type type4
24
25type :: type5
26  type(aux1) :: e
27end type type5
28
29type :: type6
30  type(aux1), pointer :: f
31end type type6
32
33type :: type7
34  class(aux), pointer :: g
35end type type7
36
37type(type1) :: foo
38type(type2) :: bar
39type(type3) :: qux
40type(type4) :: quux
41type(type5) :: fred
42type(type6) :: jim
43type(type7) :: shiela
44
45type(type1), pointer :: pfoo
46type(type2), pointer :: pbar
47type(type3), pointer :: pqux
48type(type4), pointer :: pquux
49type(type5), pointer :: pfred
50type(type6), pointer :: pjim
51type(type7), pointer :: pshiela
52
53class(type1), pointer :: cfoo
54class(type2), pointer :: cbar
55class(type3), pointer :: cqux
56class(type4), pointer :: cquux
57class(type5), pointer :: cfred
58class(type6), pointer :: cjim
59class(type7), pointer :: cshiela
60
61class(type1), allocatable :: acfoo
62class(type2), allocatable :: acbar
63class(type3), allocatable :: acqux
64class(type4), allocatable :: acquux
65class(type5), allocatable :: acfred
66class(type6), allocatable :: acjim
67class(type7), allocatable :: acshiela
68
69!$acc enter data copyin(foo)
70!$acc enter data copyin(foo%a)
71!$acc enter data copyin(bar)
72!$acc enter data copyin(bar%b)
73!$acc enter data copyin(qux)
74!$acc enter data copyin(qux%c)
75!$acc enter data copyin(quux)
76!$acc enter data copyin(quux%d)
77!$acc enter data copyin(fred)
78!$acc enter data copyin(fred%e)
79!$acc enter data copyin(jim)
80!$acc enter data copyin(jim%f)
81!$acc enter data copyin(shiela)
82!$acc enter data copyin(shiela%g)
83
84!$acc enter data copyin(pfoo)
85!$acc enter data copyin(pfoo%a)
86!$acc enter data copyin(pbar)
87!$acc enter data copyin(pbar%b)
88!$acc enter data copyin(pqux)
89!$acc enter data copyin(pqux%c)
90!$acc enter data copyin(pquux)
91!$acc enter data copyin(pquux%d)
92!$acc enter data copyin(pfred)
93!$acc enter data copyin(pfred%e)
94!$acc enter data copyin(pjim)
95!$acc enter data copyin(pjim%f)
96!$acc enter data copyin(pshiela)
97!$acc enter data copyin(pshiela%g)
98
99!$acc enter data copyin(cfoo)
100!$acc enter data copyin(cfoo%a)
101!$acc enter data copyin(cbar)
102!$acc enter data copyin(cbar%b)
103!$acc enter data copyin(cqux)
104!$acc enter data copyin(cqux%c)
105!$acc enter data copyin(cquux)
106!$acc enter data copyin(cquux%d)
107!$acc enter data copyin(cfred)
108!$acc enter data copyin(cfred%e)
109!$acc enter data copyin(cjim)
110!$acc enter data copyin(cjim%f)
111!$acc enter data copyin(cshiela)
112!$acc enter data copyin(cshiela%g)
113
114!$acc enter data copyin(acfoo)
115!$acc enter data copyin(acfoo%a)
116!$acc enter data copyin(acbar)
117!$acc enter data copyin(acbar%b)
118!$acc enter data copyin(acqux)
119!$acc enter data copyin(acqux%c)
120!$acc enter data copyin(acquux)
121!$acc enter data copyin(acquux%d)
122!$acc enter data copyin(acfred)
123!$acc enter data copyin(acfred%e)
124!$acc enter data copyin(acjim)
125!$acc enter data copyin(acjim%f)
126!$acc enter data copyin(acshiela)
127!$acc enter data copyin(acshiela%g)
128
129end
130