我因为计算的要求,数组要取到很大,而且有好几个
这样超过了256M的内存,出现了负数超过
网上搜索过后,发现解决意见主要是:
1,升级到64位的编译器
2,用动态数组
我现在的疑问是,
第一个,升级到64位的编译器后,真的就可以突破256M了么?我怕重装了系统,重装了编译器,结果还是不行,麻烦有经验的同学说下。我现在在装intel visual fortran跟visual studio 2005,我原来用的是power station 4.0,请问我原来的程序可以直接用在新装的编译器么?
第二个,我的大型数组很多,我看到别人的例子里用了模块定义动态数组,然后每次用模块,但是我的很多程序都是整个程序里都要用到的,释放不了,还有很多在子程序的虚参里,我把程序里的数组贴上来,麻烦大家帮我想想办法呢,有点着急啊。
先谢谢大家了
数组的话我有 DIMENSION XX(120),YY(120),PR(4096,4096),PI(4096,4096),
&FR(4096,4096),FI(4096,4096),
&YLR(4096*4096,4),YLI(4096*4096,4),
&YBR(4096*4096,4),YBI(4096*4096,4),EL(4096*4096)
这些数组我在一些子程序里都是作为了虚参使用
CALL FFT(PR,PI,N,K,FR,FI)
CALL IFFT(FR,FI,N,K,PR,PI)
我用了 模块来定义动态数组
MODULE ZZLL
DOUBLE PRECISION,ALLOCATABLE::YLR(:,:),YLI(:,:),YBR(:,:),
&YBI(:,:),EL(:)
END MODULE ZZLL
MODULE ZCX
DOUBLE PRECISION,ALLOCATABLE::PR(:,:),PI(:,:),FR(:,:),FI(:,:)
END MODULE ZCX
可是只能释放
PR(:,:),PI(:,:),FR(:,:),FI(:,:)数组
其他的数组整个程序过程中都需用到
运行时还是出现了错误说 error F6772
cannot allocate allocatable--out of memory
现在怎么办才好呢,visual studio 2005还在下载中,求大家帮帮忙啊