编写了一个程序,其中有12个四维数组,比如:u(6,100,100,204),v(6,100,100,204)等。因为计算需要,我把数组改写成了u(6,200,200,204)。编译时出现这个错误LNK1248: image size ('size') exceeds maximum allowable size (80000000) 按照网上的一些做法,把原本为静态数组的数组,改为了动态数组,但是会出现图中的错误
我刚才看了下论坛里相关的问题,里面的解决办法对我这个没有太大的帮助。
有几个问题请教一下:
1.电脑为WIN764位系统+IVF2013,理论上能开的最大的数组有多大?
2.数组的数量和大小,对内存的要求高吗?(8G内存)
下面为程序的一部分,这个问题困扰很久。希望大家能提供些帮助,谢谢!
[Fortran] 纯文本查看 复制代码 module sanguan
implicit none
DOUBLE PRECISION,allocatable::u(:,:,:,:),f(:,:,:,:),
? g(:,:,:,:),h(:,:,:,:)
DOUBLE PRECISION,allocatable :: ux(:,:,:,:),uy(:,:,:,:),
? uz(:,:,:,:),fx(:,:,:,:), gy(:,:,:,:),
? hz(:,:,:,:)
DOUBLE PRECISION,allocatable :: ut(:,:,:,:),ft(:,:,:,:),
? gt(:,:,:,:),ht(:,:,:,:)
end module
program ex001
use sanguan
IMPLICIT DOUBLE PRECISION (a-h,o-z)
PARAMETER (ijn=6,ixmax=200,jymax=200,kzmax=204)
common /commu01/ timec,phyin(40000,5),nin
common /par01/ gam,ak,EdRu,qin
common /out02/ timemax,ntime,nprint
common /out00/ iop
common /out10/ dx,dy,dz,dt,imax,jmax,kmax,
? ib1,ib2,jb1,jb2,kb
common /out21/ a(ijn,ijn),b(ijn,ijn),c(ijn,ijn)
common /out22/ uxij(2,ijn), uyij(2,ijn), uzij(2,ijn),
? udxij(2,ijn),udyij(2,ijn),udzij(2,ijn)
common /out23/ qijk(6,ijn)
common /out24/ sita(8,ijn),wwww(8,ijn),
? uxc(8,ijn),uyc(8,ijn),uzc(8,ijn)
common /out25/ xycir5(3,2),ncir(3),mcircle(3,ixmax,2)
common /out26/ nwork,njet(3),phycir(5,ijn)
common /out27/ dtin
common /output02/ tjet(3)
allocate(u(6,200,200,204))
allocate(f(6,200,200,204))
allocate(g(6,200,200,204))
allocate(h(6,200,200,204))
allocate(ux(6,200,200,204))
allocate(uy(6,200,200,204))
allocate(uz(6,200,200,204))
allocate(fx(6,200,200,204))
allocate(gy(6,200,200,204))
allocate(hz(6,200,200,204))
allocate(ut(6,200,200,204))
allocate(ft(6,200,200,204))
allocate(gt(6,200,200,204))
allocate(ht(6,200,200,204))
|