胡文刚 发表于 2021-4-17 15:13 使用动态数组随时写入文件、释放内存,有效。搞定了360000×3000×2的大数组。 |
楼主怎么解决的,我也遇到了类似的问题 |
dfct 发表于 2021-4-17 20:28 已解决,谢谢你! |
allocatable 的数组需要是假定形状的 尝试 [Fortran] 纯文本查看 复制代码 integer dim real(kind=8),allocatable::t(dim,dim),r(dim) dim=346082 allocate(t(dim,dim),r(dim)) !================= 另,有名为 dim 的内置函数,虽然 Fortran 没有保留字,但是还是尽量避免与内置函数同名 可以考虑用 ndim 代替 dim |
本帖最后由 胡文刚 于 2021-4-17 15:27 编辑 根据情况用其他计算方法代替。 嗯,除了内存,你还可以用硬盘存储数据。 我在steam上买了一个《生化危机3重制版》,它有22GB那么大,占了这么大的硬盘空间,但内存里并没有22GB大小的数组。 富士康的工人每天需要处理3000多件装配件,但公司并没有给他们分配能装下3000多个装配件的桌子。你说怎么办呢? 我们国家有(约)14亿人口,每个人都有独一无二的身份证号码。但公安系统的电脑内存里,没有一个14亿大小的数组来记录他们的身份证号码。 此外,在60年代的时候,内存普遍只有64KB到128KB,航天飞机轨道计算的任务仍然被计算机正确的执行了。 |
vvt 发表于 2021-4-16 10:18 那有什么办法可以解决吗 |
你的猜测没错,数组太大了。 346082*346082 这个数组,需要 958GB 的内存。 |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-11-23 10:52