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 )
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
50 if (i
.gt
.4.and
.j
.gt
.2.and
.k
.lt
.4) then
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)
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 )
101 if (i
.ge
.3.and
.j
.lt
.8.and
.k
.ge
.5) then
103 l
= c(i
- 2, j
+ 1, k
- 4)
106 if (i
.ge
.2.and
.j
.ge
.5.and
.k
.ge
.3) then
108 l
= c(i
- 1, j
- 2, k
- 2)
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)
146 if (i
.ne
.1.or
.j
.ne
.-1.or
.k
.ne
.0) STOP 10
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) STOP 12
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)
179 if (a(i
) .ne
. 3) STOP 14
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) STOP 15
189 if (b(i
,j
,k
).ne
.0) STOP 16
199 if (j
.ge
.3.and
.iand(k
,1).ne
.0) then
200 if (c(i
,j
,k
).ne
.3) STOP 17
202 if (c(i
,j
,k
).ne
.0) STOP 18