主题:数组越界检查
定义了参数Mmax=100
一个子程序中有一个形参fun(8,1:Mmax),在计算一个本地变量时有这样的式子:
i = Mmax
forall(j = 1:2)
migra(i,j) = ...*( -IAP*fun(i,j)/KAPPA - &
^^^此处
(fun(j,i) + fun(j,i-1))*(fun(3,i) - fun(3,i-1)) )
end forall
明显地,上面第三行fun(i,j)应为fun(j,i),但奇怪的是ifort即使加了-check all也检查不出来。请问可能是什么原因?如何让编译器能检查出这样的错误?
一个子程序中有一个形参fun(8,1:Mmax),在计算一个本地变量时有这样的式子:
i = Mmax
forall(j = 1:2)
migra(i,j) = ...*( -IAP*fun(i,j)/KAPPA - &
^^^此处
(fun(j,i) + fun(j,i-1))*(fun(3,i) - fun(3,i-1)) )
end forall
明显地,上面第三行fun(i,j)应为fun(j,i),但奇怪的是ifort即使加了-check all也检查不出来。请问可能是什么原因?如何让编译器能检查出这样的错误?