Я очень новичок в Openmp.Я суммировал N целых чисел, хранящихся в массиве, и компилировал код, используя gfortran.До N = 10 ^ 6 результаты, полученные из последовательного и параллельного кодов, абсолютно одинаковы.Для N = 10 ^ 7 последовательный код выполняется, но параллельный код (после компиляции с использованием флага -fopenmp) выдает «Ошибка сегментации».Я дал свой код здесь.Может ли кто-нибудь помочь мне, почему это происходит?
use omp_lib
REAL*8 r,summ,sl
parameter (N=10000000)
dimension r(N)
do i=1,N
r(i)=i
enddo
summ=0.0d00
sl=0.0d00
!$OMP PARALLEL FIRSTPRIVATE(sl) SHARED(r,summ)
!$OMP DO
do i=1,N
sl=sl+r(i)
enddo
!$OMP END DO
!$OMP CRITICAL
summ=summ+sl
!$OMP END CRITICAL
!$OMP END PARALLEL
write(*,*)'SUM',summ
end