4 integer, allocatable
:: a(:, :)
10 if (allocated (a
)) call abort
11 !$omp parallel private (a, b) reduction (.or.:l)
12 l
= l
.or
.allocated (a
)
14 l
= l
.or
..not
.allocated (a
)
15 l
= l
.or
.size(a
).ne
.18.or
.size(a
,1).ne
.3.or
.size(a
,2).ne
.6
19 l
= l
.or
.allocated (a
)
21 if (allocated (a
).or
.l
) call abort
24 if (.not
.allocated (a
)) call abort
25 l
= l
.or
.size(a
).ne
.18.or
.size(a
,1).ne
.6.or
.size(a
,2).ne
.3
27 !$omp parallel private (a, b) reduction (.or.:l)
28 l
= l
.or
..not
.allocated (a
)
32 if (l
.or
..not
.allocated (a
)) call abort
33 !$omp parallel firstprivate (a, b) reduction (.or.:l)
34 l
= l
.or
..not
.allocated (a
)
35 l
= l
.or
.size(a
).ne
.18.or
.size(a
,1).ne
.6.or
.size(a
,2).ne
.3
37 l
= l
.or
.(a(i
, 1).ne
.3).or
.(a(i
, 2).ne
.3)
38 l
= l
.or
.(a(i
, 3).ne
.3).or
.(b(i
, 1).ne
.16)
39 l
= l
.or
.(b(i
, 2).ne
.16).or
.(b(i
, 3).ne
.16)
41 a(:, :) = omp_get_thread_num ()
42 b(:, :) = omp_get_thread_num ()
44 if (any (a
.ne
.3).or
.any (b
.ne
.16).or
.l
) call abort
46 !$omp parallel do firstprivate (a, b, k) lastprivate (a, b) &
47 !$omp & reduction (.or.:l)
49 l
= l
.or
..not
.allocated (a
)
50 l
= l
.or
.size(a
).ne
.18.or
.size(a
,1).ne
.6.or
.size(a
,2).ne
.3
53 l
= l
.or
.(a(j
, 1).ne
.3).or
.(a(j
, 2).ne
.3)
54 l
= l
.or
.(a(j
, 3).ne
.3).or
.(b(j
, 1).ne
.16)
55 l
= l
.or
.(b(j
, 2).ne
.16).or
.(b(j
, 3).ne
.16)
62 if (any (a
.ne
.38).or
.any (b
.ne
.36).or
.l
) call abort
64 if (allocated (a
)) call abort
65 allocate (a (0:1, 0:3))
67 !$omp parallel do reduction (+:a) reduction (.or.:l) &
68 !$omp & num_threads(3) schedule(static)
70 l
= l
.or
..not
.allocated (a
)
71 l
= l
.or
.size(a
).ne
.8.or
.size(a
,1).ne
.2.or
.size(a
,2).ne
.4
72 a(modulo (i
, 2), i
/ 2) = a(modulo (i
, 2), i
/ 2) + i
73 a(i
/ 4, modulo (i
, 4)) = a(i
/ 4, modulo (i
, 4)) + i
78 if (a(i
, j
) .ne
. (5*i
+ 3*j
)) call abort