回 帖 发 新 帖 刷新版面

主题:[讨论]难道数组大小有上限?

OPEN(13,FILE='Elv.txt')
    READ(13,*)
    READ(13,*)Lines
    ALLOCATE (ElvX(Lines))
    ALLOCATE (ElvY(Lines))
    ALLOCATE (Elv(Lines))
      Do i=1,Lines
    READ(13,*)ElvX(i),ElvY(i),Elv(i)
      END Do
      Close(13)
————————————————————
上面是我的代码,其中的Lines=313710,就是这个txt文件总共有这313710行需要读。每次执行到这里就提示出下面的代码。盼高手指教。换成一个行数少的文件行并无错误。难道是这个313710太大了?
对于上面的代码我试过只读一行,发现可以正常读进来。但不知为何全部读完就出错了。可否指点一下子?
—————————————————————————————————————
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0xF08 has exited with code 0 (0x0).
The program 'F:\3D NHS Model\Fortran Codes\3D Model\Debug\Cartesian Grid.exe' has exited with code 0 (0x0).

回复列表 (共3个回复)

沙发

这错误其实不是个错误。

通常来说不影响使用。

你尝试一下不要点调试,直接点运行。

或者清理一下工程。如果编译器没有提供这个功能,手动删除 Debug 和 Release 文件夹。

这个数据量来说,应该是不大的。一个数组最多才几个 MB。

板凳

我这个txt文件有7.34M呀,这个还不算大吗?
其实运行是没有问题的,可以运行,但是得不到计算结果.我调试后发现是因为这里没有读进来数据.

3 楼

[quote]这错误其实不是个错误。

通常来说不影响使用。

你尝试一下不要点调试,直接点运行。

或者清理一下工程。如果编译器没有提供这个功能,手动删除 Debug 和 Release 文件夹。

这个数据量来说,应该是不大的。一个数组最多才几个 MB。[/quote]

刚刚发现,需要将 i 和 Lines 都声明成长整型才可以,多谢了。我还是基本功不扎实。

我来回复

您尚未登录,请登录后再回复。点此登录或注册