Fortran Coder

forrtl:severe(179):cannot allocate array - overflow on array size calculation

查看数: 21321 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-2-27 16:58

正文摘要:

请问一下,这是个什么错误?:forrtl:severe(179):cannot allocate array - overflow on array size calculation. 这是断点的提示内容,下图是断点出现的位置。是不是我的数组太大了,ZKMfai是的jdz=90000,所以计 ...

回复

SWY 发表于 2022-3-26 15:37:11
请问楼主是怎么解决的,我也遇到了相同的问题
fcode 发表于 2017-2-28 08:51:16
90000*90000*8/1024/1024/1024=60GB
Jackdaw 发表于 2017-2-28 08:45:35
pasuka 发表于 2017-2-28 08:37
1 Byte = 8 Bits

1 KB = 1024 Bytes

算错了吧,双精度要占8字节,一个数组81亿个元素,字节总数为8×81E8
pasuka 发表于 2017-2-28 08:37:37
本帖最后由 pasuka 于 2017-2-28 10:24 编辑

1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB之前算的不对,修正一下。。。
双精度维数90000的矩阵,占用计算机内存8.1e9*8/1024/1024/1024约等于60.35GB
改成动态分配数组,那么64位的操作系统和64位的Fortran编译器理论上可以分配这么大内存,但是lz的机器内存只有8G,相差一个数量级
还是修改算法吧
Jackdaw 发表于 2017-2-27 18:32:38
little_kar 发表于 2017-2-27 17:19
那该怎么解决呢?单纯的减小数组的话,我算的东西就失去意义了

修改算法内容,不要将数组全部放在内存里;或者换用满足要求的机器。
little_kar 发表于 2017-2-27 17:19:32
Jackdaw 发表于 2017-2-27 17:15
确实是的,按照单精度数组,每个元素4字节,一个数组81亿个元素,共30多G

那该怎么解决呢?单纯的减小数组的话,我算的东西就失去意义了
Jackdaw 发表于 2017-2-27 17:15:33
确实是的,按照单精度数组,每个元素4字节,一个数组81亿个元素,共30多G

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-9 08:08

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表