这与previous question有关。我试图用混合语法(f77和f90)并行化代码
我在代码
中添加了许多例程中的一部分 !$omp parallel shared (xdif,cdiff, dg,bfvisc,r,ro,xm ) private ( l )
!$omp do
DO L=2,n-1
xdif(l)=cdiff(l)*fjc+(dg(l)+bfvisc(l))*
& (4.d0*pi*r(l)**2*ro(l)/xm(n))**2
ENDDO
!$omp end do
!$omp end parallel
编译后(使用-fopenmp
)代码运行但只持续几秒钟,我得到的唯一错误是:分段错误(核心转储)
我没有使用模块omp_lib
(因为这是在上一个问题的答案中提出的),但我也尝试使用它(在第一行之前使用call omp_set_num_threads(4)
)。两种方式我都有同样的问题。
我该怎么办?
我还被建议用标志-g -fbacktrace -fcheck=all -Wall
打印输出。这是:
At line 2828 of file mainII.f
Fortran runtime error: Index '0' of dimension 1 of array 'l1mlos' below lower bound of 1