allocate 分配三维数组失败
附件里面有f90的文件和一个参数卡(txt),这是一个有限差分的程序(大家如果没有遇到过这类东西,请忽略这个名字)。我用allocate分配若干个三维数组(从209~236行),数组大小300*300*300,不知道什么原因他只能分配到第八个(第217行),当分配第九个的时候就显示失败了,stat返回值为41,但是后面另外的一些二维数组和一位数组申请又没问题,所以应该不是内存大小的限制,而且我也拿到32G内存机器上运行也是一样的情况,我把文件放在附件里了,麻烦版主帮忙看看,我自己是在找不到问题出在哪。代码并不繁琐,刚刚把变量定义玩,开始allocate的时候就出现的问题。
这个是代码,f90的 这个是参数卡 双精度每个数据8字节。
300*300*300*8 = 205.99MB
8个这样的数组就是 1640MB,9个就是 1845MB
如果您的编译器和操作系统是 32 位的,可能分配不了。你需要64位的编译器,或者更节约内存的算法。 本帖最后由 山林悍匪 于 2014-9-8 21:04 编辑
vvt 发表于 2014-9-8 19:11
双精度每个数据8字节。
300*300*300*8 = 205.99MB
谢谢回复!
我用的编译器是Intel Fortran2011,我自己的电脑就是64位4G内存的,而且我拿到64位32G内存的机器上也是同样的啊 主要是你的编译器是否是64位的 本帖最后由 山林悍匪 于 2014-9-8 21:29 编辑
fcode 发表于 2014-9-8 21:11
主要是你的编译器是否是64位的
恩,应该是64位的,Intel Fortran2011不就是专门为64位准备的吗? 山林悍匪 发表于 2014-9-8 21:28
恩,应该是64位的,Intel Fortran2011不就是专门为64位准备的吗?
IVF 有32位版本,也有64位版本。
64位版本同时也带有32位版本,需要选择。
这个你得自己检查一下 fcode 发表于 2014-9-8 21:49
IVF 有32位版本,也有64位版本。
64位版本同时也带有32位版本,需要选择。
这个你得自己检查一下 ...
哦,是这样,我装的时候还真没注意,那我再看看
谢谢你的回答! fcode 发表于 2014-9-8 21:49
IVF 有32位版本,也有64位版本。
64位版本同时也带有32位版本,需要选择。
这个你得自己检查一下 ...
fcode你好!我从新装了一遍ivf,但是整个安装过程并没有提示我选择32位或者64,我的vs是2010也没有提示选择64或者32
页:
[1]
2