本帖最后由 尾生 于 2019-5-6 22:40 编辑
[Fortran] 纯文本查看 复制代码 do i=0,IIX
temp_matrix=matmul(alpha_block(:,:,i),Deta_block(:,:,i-1))
temp_beta=beta_block(:,:,i)-matmul(temp_matrix,gamma_block(:,:,i-1))
call inverse(temp_beta,Deta_block(:,:,i))
new_bb(:,i:i)=-bb_block(:,i:i)-matmul(temp_matrix,new_bb(:,i-1:i-1))
end do
最近编写了一个求解器,程序运行的结果出现非物理的值,调试后发现是上面这一段代码出现了问题。alpha_block(:,:,0)和Deta_block(:,:,-1)这两个数组的值都没问题,但通过matmul函数运算之后出现了NaN的元素,十分不解,按理说matmul是Fortran库函数不应该计算错误,大概率是我引用函数出现了问题但自己想不出来,所以想向各位老师们请教一下是什么原因导致的呢?循环第一步的相关数组的值在附图中。感谢各位!
|