我是你的眼 发表于 2016-3-31 19:51:03

FORTRAN 编程中遇到的问题 麻烦各位大神帮忙

刚学fortran不久   m和mag的定义是这样的:real(kind=8),allocatable:: m(:,:,:)      allocate(m(NNx,NNy,NNz))   real(kind=8)store(2*NNx*NNy*NNz),mag(NNx*NNy*NNz)
但是在程序运行的时候 确有这样的问题,
请各位大神帮忙解决这个问题

楚香饭 发表于 2016-3-31 20:43:42

本帖最后由 楚香饭 于 2016-3-31 20:49 编辑

当 iz 循环到 NNz 时
ixiyiz = (iz-1)*NNx*NNy + (ix-1)*NNy + iy
       = NNz*NNx*NNy + (ix-1)*NNy + iy
       > NNz*NNx*NNy
那么 mag(ixiyiz) 就会越界,因为 mag 数组的上限为 NNx*NNy*NNz


当然,在你的错误提示里,不一定错误是发生在给出代码的位置。
你可以检查 mprism.f90 文件的第 43 行
也可以自己单步debug调试一下。

如果还是无法解决,请给出全部的代码和输入输出文件。
页: [1]
查看完整版本: FORTRAN 编程中遇到的问题 麻烦各位大神帮忙