3 integer, parameter :: N
= 256
4 integer, save :: a(N
), b(N
/ 16, 8, 4), c(N
/ 32, 8, 8), g(N
/16,8,6)
5 integer, save, volatile :: d
, e
6 integer(kind
=8), save, volatile :: f
9 integer :: m1
, m2
, m3
, m4
, m5
, m6
, m7
, m8
10 integer :: m9
, m10
, m11
, m12
, m13
, m14
, m15
, m16
14 !$omp parallel private (l) shared(k)
15 !$omp do schedule(guided, 3) ordered(1)
16 do i
= 2, N
+ f
, f
+ 1
19 !$omp ordered depend ( sink : i - 1 )
32 !$omp ordered depend(source)
37 !$omp do schedule(guided) ordered ( 3 )
38 do i
= 4, N
/ 16 - 1 + f
, 1 + f
43 !$omp ordered depend(sink:i,j-2,k-1) &
44 !$omp& depend(sink: i - 2, j - 2, k + 1)
45 !$omp ordered depend(sink:i-3,j+2,k-2)
46 if (j
.gt
.2.and
.k
.gt
.2) then
53 if (i
.gt
.5.and
.j
.gt
.2.and
.k
.lt
.4) then
58 if (i
.gt
.6.and
.j
.le
.N
/16-3.and
.k
.eq
.4) then
60 l
= b( i
- 3, j
+2, k
-2)
63 !$omp ordered depend(source)
70 !$omp do schedule(guided, 15) collapse(2) ordered(13)
71 do i
= 3, N
/ 32 + f
, d
+ 1
92 !$omp ordered depend(sink: i, j, k + 2, m1, m2, m3, m4, &
93 !$omp & m5, m6, m7, m8, m9, m10) &
94 !$omp depend(sink: i - 2, j + 1, k - 4, m1,m2,m3,m4,m5, &
95 !$omp & m6,m7,m8,m9,m10) depend ( sink : i-1,j-2,k-2, &
96 !$omp& m1,m2,m3,m4 , m5, m6,m7,m8,m9,m10 )
104 if (i
.ge
.5.and
.j
.lt
.8.and
.k
.ge
.5) then
106 l
= c(i
- 2, j
+ 1, k
- 4)
109 if (i
.ge
.4.and
.j
.ge
.5.and
.k
.ge
.3) then
111 l
= c(i
- 1, j
- 2, k
- 2)
114 !$omp ordered depend ( source )
136 !$omp do schedule(guided, 5) ordered(3)
137 do j
= 1, N
/ 16 - 1, d
+ 1
139 do i
= 4, 6 + f
, f
+ 1
142 !$omp ordered depend(sink: j, k-2,i-1) &
143 !$omp& depend(sink: j - 2, k - 2, i + 1)
144 !$omp ordered depend(sink:j-3,k+2,i-2)
145 if (k
.gt
.2.and
.i
.gt
.4) then
152 if (j
.gt
.2.and
.k
.gt
.2.and
.i
.lt
.6) then
157 if (j
.gt
.3.and
.k
.le
.N
/16-3.and
.i
.eq
.6) then
159 l
= g( j
- 3, k
+2, i
-2)
162 !$omp ordered depend(source)
169 !$omp do collapse(2) ordered(4) lastprivate (i,j,k)
170 do i
= 2, f
+ 2, 1 + f
171 do j
= d
+ 1, 0, d
- 1
172 do k
= 0, d
- 1, d
+ 1
173 do l
= 0, d
+ 1, 1 + d
174 !$omp ordered depend(source)
175 !$omp ordered depend(sink: i-2,j+2,k-2,l)
182 if (i
.ne
.3.or
.j
.ne
.-1.or
.k
.ne
.0) STOP 13
185 !$omp do ordered(4) collapse(2) lastprivate (i, j, k, m)
186 do i
= 2, f
+ 2, 1 + f
187 do j
= d
+ 1, 0, d
- 1
188 do k
= 0, d
+ 1, 1 + d
190 !$omp ordered depend(source)
191 !$omp ordered depend(sink: i - 2, j + 2, k - 2, m)
198 if (i
.ne
.3.or
.j
.ne
.-1.or
.k
.ne
.2.or
.m
.ne
.0) STOP 15
200 !$omp do collapse(2) ordered(4) lastprivate (i,j,k)
201 do i
= 2, f
+ 2, 1 + f
203 do k
= 0, d
+ 1, 1 + d
204 do l
= 0, d
+ 3, d
+ 1
205 !$omp ordered depend(source)
206 !$omp ordered depend(sink: i-2,j+2,k-2,l)
214 if (a(1) .ne
. 0) STOP 17
215 !$omp end single nowait
218 if (a(i
) .ne
. 3) STOP 18
221 !$omp do collapse(2) private(k)
225 if (i
.ge
.4.and
.i
.lt
.N
/16.and
.iand(j
,1).ne
.0.and
.k
.ge
.2) then
226 if (b(i
,j
,k
).ne
.3) STOP 19
228 if (b(i
,j
,k
).ne
.0) STOP 20
238 if (i
.ge
.3.and
.j
.ge
.3.and
.iand(k
,1).ne
.0) then
239 if (c(i
,j
,k
).ne
.3) STOP 21
241 if (c(i
,j
,k
).ne
.0) STOP 22
247 !$omp do collapse(2) private(k)
251 if (i
.lt
.N
/16.and
.iand(j
,1).ne
.0.and
.k
.ge
.4) then
252 if (g(i
,j
,k
).ne
.3) STOP 23
254 if (g(i
,j
,k
).ne
.0) STOP 24