Я немного обновляю openmp и попал в эту странную ситуацию. Сбрив кучу, я создал этот минимальный тривиальный случай, который показывает проблему
program ex2
implicit none
integer, parameter :: n=10000000
integer :: i
real :: x(n)
do i=1,n
x(i) = 0.0d0
enddo
end program
без указания флагов gfortran 4.3.4 на Mac (10.6) компилируется, и программа выполняется правильно.
Однако, если я включу openmp с параметром -fopenmp, программа завершится с ошибкой сегментации. По-видимому, код не выполняется, так как он сразу же падает. Как видите, openmp никогда не используется в коде для распараллеливания чего-либо. Я попытался изменить размер стека, как с ulimit, так и с -fmax-stack-var-size, и в любом случае десять миллионов реалов - это не то, что я определяю как большой массив.
Что я делаю неправильно ?