[문의] Openmp in fortran

elquin의 이미지

현재 intel fortran으로 공학용 코드를 작성하고 있습니다.
계산 속도 향상을 위해서 우선적으로 serial code의 일부분에 openmp를 적용해 보았습니다.

do block=1, nblock
 
   m = ...(block) ; n = ...(block)
   bet(m) = c(m,m)
   rhs(m) = rhs(m)/bet(m,m)
 
   !$omp parallel do private(i)
   do i=m+1, n
      gam(i) = c(i-1,i)/bet(i-1)
      bet(i) = c(i,i)-c(i,i-1)*gam(i)
      rhs(i) = (rhs(i)-rhs(i-1))*c(i,i-1)/bet(i)
   end do
   !$omp end parallel do
 
end do

여기서 rhs 를 출력해 보면, 어떨 때는 제대로 나오다가 어떨 때는 NaN이나 이상한 값들이 나옵니다.
이건 어떻게 해결할 수 있을까요..??

익명 사용자의 이미지

NaN이 나오는 경우가 몇가지 있죠. 예를 들어 0으로 나눈다던가 하는 경우가 아닌지 체크해 보면 되지 않을까요.