3 integer, parameter :: N
= 256
4 integer, save :: a(N
), b(N
/ 16, 8, 4), c(N
/ 32, 8, 8)
5 integer, save, volatile :: d
, e
6 integer :: i
, j
, k
, l
, m
7 integer :: m1
, m2
, m3
, m4
, m5
, m6
, m7
, m8
8 integer :: m9
, m10
, m11
, m12
, m13
, m14
, m15
, m16
11 !$omp parallel private (l) shared(k)
12 !$omp do schedule(static, 1) ordered(1)
16 !$omp ordered depend ( sink : i - 1 )
20 if (l
.lt
.2) call abort
27 if (l
.eq
.3) call abort
29 !$omp ordered depend(source)
34 !$omp do schedule(static) ordered ( 3 )
40 !$omp ordered depend(sink:i,j-2,k-1) &
41 !$omp& depend(sink: i - 2, j - 2, k + 1)
42 !$omp ordered depend(sink:i-3,j+2,k-2)
43 if (j
.gt
.2.and
.k
.gt
.2) then
46 if (l
.lt
.2) call abort
50 if (i
.gt
.4.and
.j
.gt
.2.and
.k
.lt
.4) then
53 if (l
.lt
.2) call abort
55 if (i
.gt
.5.and
.j
.le
.N
/16-3.and
.k
.eq
.4) then
57 l
= b( i
- 3, j
+2, k
-2)
58 if (l
.lt
.2) call abort
60 !$omp ordered depend(source)
67 !$omp do schedule(dynamic, 15) collapse(2) ordered(13)
89 !$omp ordered depend(sink: i, j, k + 2, m1, m2, m3, m4, &
90 !$omp & m5, m6, m7, m8, m9, m10) &
91 !$omp depend(sink: i - 2, j + 1, k - 4, m1,m2,m3,m4,m5, &
92 !$omp & m6,m7,m8,m9,m10) depend ( sink : i-1,j-2,k-2, &
93 !$omp& m1,m2,m3,m4 , m5, m6,m7,m8,m9,m10 )
97 if (l
.lt
.2) call abort
101 if (i
.ge
.3.and
.j
.lt
.8.and
.k
.ge
.5) then
103 l
= c(i
- 2, j
+ 1, k
- 4)
104 if (l
.lt
.2) call abort
106 if (i
.ge
.2.and
.j
.ge
.5.and
.k
.ge
.3) then
108 l
= c(i
- 1, j
- 2, k
- 2)
109 if (l
.lt
.2) call abort
111 !$omp ordered depend ( source )
133 !$omp do collapse(2) ordered(4) lastprivate (i,j,k)
138 !$omp ordered depend(source)
139 !$omp ordered depend(sink: i-2,j+2,k-2,l)
140 if (e
.eq
.0) call abort
146 if (i
.ne
.1.or
.j
.ne
.-1.or
.k
.ne
.0) call abort
149 !$omp do ordered(4) collapse(2) lastprivate (i, j, k, m)
154 !$omp ordered depend(source)
155 !$omp ordered depend(sink: i - 2, j + 2, k - 2, m)
162 if (i
.ne
.1.or
.j
.ne
.-1.or
.k
.ne
.2.or
.m
.ne
.0) call abort
164 !$omp do collapse(2) ordered(4) lastprivate (i,j,k)
169 !$omp ordered depend(source)
170 !$omp ordered depend(sink: i-2,j+2,k-2,l)
171 if (e
.eq
.0) call abort
179 if (a(i
) .ne
. 3) call abort
182 !$omp do collapse(2) private(k)
186 if (i
.ge
.3.and
.i
.lt
.N
/16.and
.iand(j
,1).ne
.0.and
.k
.ge
.2) then
187 if (b(i
,j
,k
).ne
.3) call abort
189 if (b(i
,j
,k
).ne
.0) call abort
199 if (j
.ge
.3.and
.iand(k
,1).ne
.0) then
200 if (c(i
,j
,k
).ne
.3) call abort
202 if (c(i
,j
,k
).ne
.0) call abort