I have the following code which causes the Intel Fortran compiler to cause a runtime SIGSEGV crash for array sizes 600^2:
do iter = 1, num_iterations !$OMP PARALLEL SHARED( A, A_new, outside, inside ) !$OMP WORKSHARE A_new(:, :) = outside(:, :) * A(:, :) + inside(:, :) * 0.25_rp * & ( cshift(A(:, :), dim = 1, shift = 1 ) + & cshift(A(:, :), dim = 1, shift = -1 ) + & cshift(A(:, :), dim = 2, shift = 1 ) + & cshift(A(:, :), dim = 2, shift = -1 )) A(:, :) = A_new(:, :) !$OMP END WORKSHARE !$OMP END PARALLEL end do
If I switch off OpenMP, it works fine so I think there is something wrong with the Intel OpenMP runtime system. This is for Intel Fortran version 17.0.0 20160721, and this also happens for Intel Fortran 18.0.0. I have attached a tar file which contains the two Fortran source code files. Just type "make" and execute the resulting code.