I have trouble applying openmp to a nested loop in Fortran like this:
!$omp parallel do default(none) private(irow,mm,iparm,jrow) shared(nsrow,nparm,zvec,bvec,brx,zdense)
do irow = 2, nsrow
mm = irow -1
do iparm = 1, nparm
do jrow = 1, mm
zvec(jrow) = zdense( ijdense(jrow,irow,nsrow) )
end do
bvec(iparm) = ddot( mm, zvec, 1, brx(:,iparm), 1)
end do
brx(irow,:) = (brx(irow,:)-bvec)/zdense(ijdense(irow,irow,nsrow))
end do
!$omp end parallel do
When I compare the serial with the openmp version, the last one gives weird results. do you know why or can point to a good tutorial explicit about nested loops and openmp? Thank you in advance