我有一个程序,可以将粒子分布到网格中的云中。简单地循环遍历粒子总数(Ntot)并填充256^3网格(即每个粒子分布在8个单元上)。
% gfortran -fopenmp cic.f90 -o ./cic
它编译得很好。但是当我运行它(./cic)时,我得到了一个分段错误。我的循环是一个典型的omp do问题。当我没有在openmp中编译它时,这个程序就可以工作了。
!$omp parallel do
do i = 1,Ntot
if (x1(i).gt.0.and.y1(i).gt.0.and.z1(i).gt.0) then
dense(int(x1(i)),int(y1