首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fortran77中的动态内存分配

fortran77中的动态内存分配
EN

Stack Overflow用户
提问于 2010-10-01 05:30:35
回答 1查看 3.2K关注 0票数 1

我正在编写一个使用三维数组的Fortran77程序。我将数组声明为Array_E(0:500,0:1000,0:100)。当我执行这个程序时,它立即崩溃,说它被“杀死”了。当我运行strace的时候,我得到的是,

execve("./yee","./yee",/* 65 vars */ +++被SIGKILL +++杀死

我怀疑问题在于g77编译器无法为数组分配内存。事实上,有九个这样的数组。在这种情况下,有没有办法在f77中动态分配堆栈上的内存?如果这不是崩溃的原因,请让我知道如果你有任何想法。

EN

回答 1

Stack Overflow用户

发布于 2010-11-08 00:38:28

数组的大小约为50x10^6个条目,因此对于双精度而言,大小约为400 MBytes。9这样的数组将占用3.6 GBytes的内存,所以我假设您有足够的内存可用?

在Fortran 77中使用大型数组可能会有问题,因为它们不是动态分配的,而是放在堆栈上的。我不确定限制是什么,我猜这取决于操作系统和体系结构,但在32位系统上,使用堆栈上那么大的数组可能不起作用。你可以求助于fortran90的可分配数组,但是你必须使用gfortran而不是g77。

如果你需要严格的fortran77,你可以使用ma包,它可以作为全局数组工具包(http://www.emsl.pnl.gov/docs/global/)的一部分获得。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3834985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档