Assure Example
Invalid data bug:
do 10 n=1,1000
10 A(n) = 0.0
c$omp parallel do private(B,i,j)
c$omp& shared(A,m,a1,a2,b1,b2)
do i=1,m
do 20 j=a1(i),a2(i)
20 A(j) = (expression)
do 30 j=b1(i),b2(i)
30 B(j) = (Reference to A(j))
enddo
print *,B
Valid Data --
m=4
i a1 a2
1 1 3
2 4 6
3 7 9
4 10 12
i b1 b2
1 1 3
2 4 6
3 7 9
4 10 12
INvalid Data --
m=4
i a1 a2
1 1 3
2 4 6
3 7 9
4 10 12
i b1 b2
1 2 4
2 5 7
3 8 10
4 11 13
Previous slide
Next slide
Back to first slide
View graphic version