阵列的Fortran条目似乎随机变化

时间:2016-07-07 03:56:42

标签: memory fortran gfortran

我一直在使用FORTRAN计划。我注意到我正在使用的一维矩阵中看似随机的变化。它是4000个整数的矩阵。将值逐个添加到矩阵中,从索引1开始,并为每个添加值迭代1。矩阵没有完全“填充”,目前只有100个值被放入矩阵中。因此可以预期矩阵的前100个条目将为非零(所有相加值都为非零),其余3900个条目将为0.但是,矩阵的几个条目最终为大负数,但我确定我的代码的任何部分都不会触及这些条目。

可能导致此问题的原因是什么?对不起,我无法发布代码供大家使用。

代码有几个其他大型矩阵,占用总空间约100 MB。这可能是一个内存问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

你必须初始化你的数组,否则它几乎总是包含垃圾。这样就可以了:

array = 0.0e0  ! real array

array = 0.0e0  ! double precision

array = 0  ! integer

答案 1 :(得分:-2)

“矩阵”是二维的;你的数组是一维的。

除非你要求他们改变,否则事情不会改变。

FORTRAN不会在标记的COMMON中初始化除(我记得)之外的变量。因此,他们保证从垃圾值开始。尝试使用DATA语句初始化数据。如果必须初始化标记的COMMON,则必须提供BLOCK DATA子程序。