无法在数组大小计算上分配数组溢出

时间:2016-05-24 15:27:38

标签: fortran

我需要在Fortran中导入一个txt文件(大小:2 ^ N;尺寸:1.4 GB)并将其保存在一个数组中:DATI。从那开始,我必须生成一个矩阵,其中N列等于DATI:MATPAYOFF。在特定情况下N = 26(实数是双精度)。我在64位计算机上使用Visual Studio 2013(Intel Xeon CPU E5-1650 v2 @ 3.50GHz,Ram:24.0 GHz,Windows 10 Pro)。

ALLOCATE(MATPAYOFF(1:2**N,1:N),DATI(1:2**N),VECPAYOFF(1:2**N))

CALL read_file(UNITA,'RandomData_N_'//TRIM(str(N))//'_file_'//TRIM(str(LAMBDA))//'.txt',2**N,1,DATI)

FORALL(j=1:N)
       MATPAYOFF(:,j)=DATI
ENDFORALL

VECPAYOFF=(DATI-MINVAL(DATI))/(MAXVAL(DATI)-MINVAL(DATI))

在allocate语句中,我收到以下错误:" forrtl:severe(179):无法分配数组 - 在数组大小计算上溢出 &#34 ;我试图解决这个问题:

在机器中:页面文件的尺寸为20000 MB。

在Visual Studio中:Project / Propriety / Fortran / Optimization / Heap Arrays:0。

在Visual Studio中:Project / Propriety / Fortran /命令行:/ heap_arrays。

我该如何解决这个问题?

0 个答案:

没有答案