Increase timeout by 2 in libgomp.fortran/alloc-comp-3.f90 on hppa*-*-*
[official-gcc.git] / libgomp / testsuite / libgomp.fortran / alloc-comp-3.f90
blobeb418e83d9e1cde4b087e94d87d660f09952b819
1 ! { dg-do run }
2 ! Don't cycle by default through all options, just test -O0 and -O2,
3 ! as this is quite large test.
4 ! { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } }
5 ! { dg-timeout-factor 2.0 { target hppa*-*-* } }
7 module m
8 type dl
9 integer :: a, b
10 integer, allocatable :: c(:,:)
11 integer :: d, e
12 integer, allocatable :: f
13 end type
14 type dt
15 integer :: g
16 type (dl), allocatable :: h(:)
17 integer :: i
18 type (dl) :: j(2, 2)
19 type (dl), allocatable :: k
20 end type
21 contains
22 subroutine ver_dl (obj, val, c, cl1, cu1, cl2, cu2, f)
23 type (dl), intent (in) :: obj
24 integer, intent (in) :: val, cl1, cu1, cl2, cu2
25 logical, intent (in) :: c, f
26 if ((c .neqv. allocated (obj%c)) .or. (f .neqv. allocated (obj%f))) stop 1
27 if (c) then
28 if (lbound (obj%c, 1) /= cl1 .or. ubound (obj%c, 1) /= cu1) stop 2
29 if (lbound (obj%c, 2) /= cl2 .or. ubound (obj%c, 2) /= cu2) stop 3
30 end if
31 if (val /= 0) then
32 if (obj%a /= val .or. obj%b /= val) stop 4
33 if (obj%d /= val .or. obj%e /= val) stop 5
34 if (c) then
35 if (any (obj%c /= val)) stop 6
36 end if
37 if (f) then
38 if (obj%f /= val) stop 7
39 end if
40 end if
41 end subroutine ver_dl
42 subroutine ver_dt (obj, val, h, hl, hu, k, c, cl1, cu1, cl2, cu2, f)
43 type (dt), intent (in) :: obj
44 integer, intent (in) :: val, hl, hu, cl1, cu1, cl2, cu2
45 logical, intent (in) :: h, k, c, f
46 integer :: i, j
47 if ((h .neqv. allocated (obj%h)) .or. (k .neqv. allocated (obj%k))) stop 8
48 if (h) then
49 if (lbound (obj%h, 1) /= hl .or. ubound (obj%h, 1) /= hu) stop 9
50 do i = hl, hu
51 call ver_dl (obj%h(i), val, c, cl1, cu1, cl2, cu2, f)
52 end do
53 end if
54 do i = 1, 2
55 do j = 1, 2
56 call ver_dl (obj%j(i, j), val, c, cl1, cu1, cl2, cu2, f)
57 end do
58 end do
59 if (k) call ver_dl (obj%k, val, c, cl1, cu1, cl2, cu2, f)
60 if (val /= 0) then
61 if (obj%g /= val .or. obj%i /= val) stop 10
62 end if
63 end subroutine ver_dt
64 subroutine alloc_dl (obj, val, c, cl1, cu1, cl2, cu2, f)
65 type (dl), intent (inout) :: obj
66 integer, intent (in) :: val, cl1, cu1, cl2, cu2
67 logical, intent (in) :: c, f
68 if (val /= 0) then
69 obj%a = val
70 obj%b = val
71 obj%d = val
72 obj%e = val
73 end if
74 if (allocated (obj%c)) deallocate (obj%c)
75 if (c) then
76 allocate (obj%c(cl1:cu1, cl2:cu2))
77 if (val /= 0) obj%c = val
78 end if
79 if (f) then
80 if (.not.allocated (obj%f)) allocate (obj%f)
81 if (val /= 0) obj%f = val
82 else
83 if (allocated (obj%f)) deallocate (obj%f)
84 end if
85 end subroutine alloc_dl
86 subroutine alloc_dt (obj, val, h, hl, hu, k, c, cl1, cu1, cl2, cu2, f)
87 type (dt), intent (inout) :: obj
88 integer, intent (in) :: val, hl, hu, cl1, cu1, cl2, cu2
89 logical, intent (in) :: h, k, c, f
90 integer :: i, j
91 if (val /= 0) then
92 obj%g = val
93 obj%i = val
94 end if
95 if (allocated (obj%h)) deallocate (obj%h)
96 if (h) then
97 allocate (obj%h(hl:hu))
98 do i = hl, hu
99 call alloc_dl (obj%h(i), val, c, cl1, cu1, cl2, cu2, f)
100 end do
101 end if
102 do i = 1, 2
103 do j = 1, 2
104 call alloc_dl (obj%j(i, j), val, c, cl1, cu1, cl2, cu2, f)
105 end do
106 end do
107 if (k) then
108 if (.not.allocated (obj%k)) allocate (obj%k)
109 call alloc_dl (obj%k, val, c, cl1, cu1, cl2, cu2, f)
110 else
111 if (allocated (obj%k)) deallocate (obj%k)
112 end if
113 end subroutine alloc_dt
114 end module m
115 use m
116 type (dt), allocatable :: z(:,:)
117 type (dt) :: y(2:3)
118 call foo (y, z, 4)
119 contains
120 subroutine foo (y, z, n)
121 use m
122 integer :: n
123 type (dt) :: x(2:n), y(3:)
124 type (dt), allocatable :: z(:,:)
125 logical, parameter :: F = .false.
126 logical, parameter :: T = .true.
127 logical :: l
128 if (lbound (x, 1) /= 2 .or. ubound (x, 1) /= 4) stop 11
129 if (lbound (y, 1) /= 3 .or. ubound (y, 1) /= 4) stop 12
130 call ver_dt (x(2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
131 call ver_dt (x(n), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
132 call ver_dt (y(3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
133 call ver_dt (y(4), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
134 !$omp parallel private (z)
135 if (allocated (z)) stop 13
136 !$omp end parallel
137 !$omp parallel firstprivate (z)
138 if (allocated (z)) stop 14
139 !$omp end parallel
140 l = F
141 !$omp parallel sections lastprivate (z) firstprivate (l)
142 !$omp section
143 if (.not. l) then
144 if (allocated (z)) stop 15
145 end if
146 !$omp section
147 if (.not. l) then
148 if (allocated (z)) stop 16
149 end if
150 allocate (z(-3:-3,2:3))
151 call alloc_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
152 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
153 call alloc_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
154 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
155 !$omp section
156 !$omp end parallel sections
157 if (.not.allocated (z)) stop 17
158 if (lbound (z, 1) /= -3 .or. ubound (z, 1) /= -3) stop 18
159 if (lbound (z, 2) /= 2 .or. ubound (z, 2) /= 3) stop 19
160 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
161 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
162 call ver_dt (x(n - 1), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
163 call ver_dt (y(4), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
164 call alloc_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
165 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
166 call alloc_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
167 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
168 !$omp parallel private (x, y, z)
169 call ver_dt (x(n - 1), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
170 call alloc_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
171 call ver_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
172 call ver_dt (y(4), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
173 call alloc_dt (y(4), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
174 call ver_dt (y(4), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
175 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
176 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
177 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
178 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
179 call alloc_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
180 call ver_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
181 !$omp end parallel
182 call ver_dt (x(n - 1), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
183 call alloc_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
184 call ver_dt (y(4), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
185 call alloc_dt (y(4), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
186 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
187 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
188 call ver_dt (z(-3,3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
189 call alloc_dt (z(-3,3), 14, T, 3, 4, F, T, 1, 1, 2, 4, T)
190 !$omp parallel private (x, y, z)
191 call ver_dt (x(n - 1), 0, T, -3, -1, T, T, -1, -1, 2, 3, T)
192 call ver_dt (y(4), 0, T, 3, 4, F, T, 1, 1, 2, 4, T)
193 deallocate (x(n - 1)%h, x(n - 1)%k)
194 deallocate (y(4)%h)
195 allocate (y(4)%k)
196 call ver_dt (z(-3,2), 0, T, -3, -1, T, T, -1, -1, 2, 3, T)
197 call ver_dt (z(-3,3), 0, T, 3, 4, F, T, 1, 1, 2, 4, T)
198 deallocate (z(-3,2)%h, z(-3,2)%k)
199 deallocate (z(-3,3)%h)
200 allocate (z(-3,3)%k)
201 !$omp end parallel
202 call alloc_dt (x(n - 1), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
203 call alloc_dt (y(4), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
204 call alloc_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
205 call alloc_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
206 !$omp parallel firstprivate (x, y, z)
207 if (lbound (x, 1) /= 2 .or. ubound (x, 1) /= 4) stop 20
208 if (lbound (y, 1) /= 3 .or. ubound (y, 1) /= 4) stop 21
209 call ver_dt (x(n - 1), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
210 call alloc_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
211 call ver_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
212 call ver_dt (y(4), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
213 call alloc_dt (y(4), 4, T, 3, 4, T, T, 1, 1, 2, 4, T)
214 call ver_dt (y(4), 4, T, 3, 4, T, T, 1, 1, 2, 4, T)
215 call ver_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
216 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
217 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
218 call ver_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
219 call alloc_dt (z(-3,3), 4, T, 3, 4, T, T, 1, 1, 2, 4, T)
220 call ver_dt (z(-3,3), 4, T, 3, 4, T, T, 1, 1, 2, 4, T)
221 !$omp end parallel
222 call ver_dt (x(n - 1), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
223 call alloc_dt (x(n - 1), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
224 call ver_dt (y(4), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
225 call alloc_dt (y(4), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
226 call ver_dt (z(-3,2), 5, T, 1, 2, F, T, 2, 3, -2, -2, F)
227 call alloc_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
228 call ver_dt (z(-3,3), 15, F, 0, 0, T, T, 2, 2, 2, 2, T)
229 call alloc_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
230 !$omp parallel firstprivate (x, y, z)
231 call ver_dt (x(n - 1), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
232 call alloc_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
233 call ver_dt (x(n - 1), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
234 call ver_dt (y(4), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
235 call alloc_dt (y(4), 17, T, 1, 2, F, T, 2, 2, 3, 3, F)
236 call ver_dt (y(4), 17, T, 1, 2, F, T, 2, 2, 3, 3, F)
237 call ver_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
238 call alloc_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
239 call ver_dt (z(-3,2), 4, T, -3, -1, T, T, -1, -1, 2, 3, T)
240 call ver_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
241 call alloc_dt (z(-3,3), 17, T, 1, 2, F, T, 2, 2, 3, 3, F)
242 call ver_dt (z(-3,3), 17, T, 1, 2, F, T, 2, 2, 3, 3, F)
243 !$omp end parallel
244 call ver_dt (x(n - 1), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
245 call ver_dt (y(4), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
246 call alloc_dt (y(4), 18, T, 0, 1, T, T, 0, 1, 0, 1, T)
247 call ver_dt (z(-3,2), 4, F, 0, 0, F, F, 0, 0, 0, 0, F)
248 call ver_dt (z(-3,3), 16, F, 0, 0, F, F, 0, 0, 0, 0, F)
249 call alloc_dt (z(-3,3), 18, T, 0, 1, T, T, 0, 1, 0, 1, T)
250 l = F
251 !$omp parallel sections lastprivate (x, y, z) firstprivate (l)
252 !$omp section
253 if (l) then
254 call ver_dt (x(n - 1), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
255 call ver_dt (y(4), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
256 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
257 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
258 else
259 call ver_dt (x(n - 1), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
260 call ver_dt (y(4), 0, T, 0, 1, T, T, 0, 1, 0, 1, T)
261 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
262 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 0, 1, 0, 1, T)
263 end if
264 l = T
265 call alloc_dt (x(n - 1), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
266 call ver_dt (x(n - 1), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
267 call alloc_dt (y(4), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
268 call ver_dt (y(4), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
269 call alloc_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
270 call ver_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
271 call alloc_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
272 call ver_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
273 !$omp section
274 if (l) then
275 call ver_dt (x(n - 1), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
276 call ver_dt (y(4), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
277 call ver_dt (z(-3,2), 7, T, 1, 1, T, T, 1, 2, 3, 3, T)
278 call ver_dt (z(-3,3), 20, T, 0, 0, F, T, 2, 2, 3, 4, F)
279 else
280 call ver_dt (x(n - 1), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
281 call ver_dt (y(4), 0, T, 0, 1, T, T, 0, 1, 0, 1, T)
282 call ver_dt (z(-3,2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
283 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 0, 1, 0, 1, T)
284 end if
285 l = T
286 call alloc_dt (x(n - 1), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
287 call ver_dt (x(n - 1), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
288 call alloc_dt (y(4), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
289 call ver_dt (y(4), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
290 call alloc_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
291 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
292 call alloc_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
293 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
294 !$omp section
295 !$omp end parallel sections
296 call ver_dt (x(n - 1), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
297 call ver_dt (y(4), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
298 call ver_dt (z(-3,2), 9, T, 1, 1, F, F, 0, 0, 0, 0, T)
299 call ver_dt (z(-3,3), 21, F, 0, 0, T, T, 1, 2, 3, 4, T)
300 !$omp parallel sections lastprivate (x, y, z) firstprivate (l)
301 !$omp section
302 if (l) then
303 call ver_dt (x(n - 1), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
304 call ver_dt (y(4), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
305 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
306 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
307 else
308 call ver_dt (x(n - 1), 0, T, 1, 1, F, F, 0, 0, 0, 0, T)
309 call ver_dt (y(4), 0, F, 0, 0, T, T, 1, 2, 3, 4, T)
310 call ver_dt (z(-3,2), 0, T, 1, 1, F, F, 0, 0, 0, 0, T)
311 call ver_dt (z(-3,3), 0, F, 0, 0, T, T, 1, 2, 3, 4, T)
312 end if
313 l = T
314 call alloc_dt (x(n - 1), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
315 call ver_dt (x(n - 1), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
316 call alloc_dt (y(4), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
317 call ver_dt (y(4), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
318 call alloc_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
319 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
320 call alloc_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
321 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
322 !$omp section
323 if (l) then
324 call ver_dt (x(n - 1), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
325 call ver_dt (y(4), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
326 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
327 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
328 else
329 call ver_dt (x(n - 1), 0, T, 1, 1, F, F, 0, 0, 0, 0, T)
330 call ver_dt (y(4), 0, F, 0, 0, T, T, 1, 2, 3, 4, T)
331 call ver_dt (z(-3,2), 0, T, 1, 1, F, F, 0, 0, 0, 0, T)
332 call ver_dt (z(-3,3), 0, F, 0, 0, T, T, 1, 2, 3, 4, T)
333 end if
334 l = T
335 call alloc_dt (x(n - 1), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
336 call ver_dt (x(n - 1), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
337 call alloc_dt (y(4), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
338 call ver_dt (y(4), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
339 call alloc_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
340 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
341 call alloc_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
342 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
343 !$omp section
344 !$omp end parallel sections
345 call ver_dt (x(n - 1), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
346 call ver_dt (y(4), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
347 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
348 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
349 !$omp parallel private (x, y, z)
350 call ver_dt (x(n - 1), 0, F, 0, 0, T, T, -1, -1, -1, -1, T)
351 call ver_dt (y(4), 0, T, 0, 1, T, T, 2, 2, 2, 2, F)
352 call ver_dt (z(-3,2), 0, F, 0, 0, T, T, -1, -1, -1, -1, T)
353 call ver_dt (z(-3,3), 0, T, 0, 1, T, T, 2, 2, 2, 2, F)
354 !$omp single
355 call alloc_dt (x(n - 1), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
356 call alloc_dt (y(4), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
357 call alloc_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
358 call alloc_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
359 !$omp end single copyprivate (x, y, z)
360 call ver_dt (x(n - 1), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
361 call ver_dt (y(4), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
362 call ver_dt (z(-3,2), 3, F, 0, 0, T, T, 0, 1, 0, 1, F)
363 call ver_dt (z(-3,3), 22, T, 5, 5, F, T, 2, 3, 2, 2, T)
364 !$omp end parallel
365 call ver_dt (x(n - 1), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
366 call ver_dt (y(4), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
367 call ver_dt (z(-3,2), 5, F, 0, 0, T, T, -1, -1, -1, -1, T)
368 call ver_dt (z(-3,3), 23, T, 0, 1, T, T, 2, 2, 2, 2, F)
369 call ver_dt (x(2), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
370 call ver_dt (x(n), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
371 call ver_dt (y(3), 0, F, 0, 0, F, F, 0, 0, 0, 0, F)
372 end subroutine foo