我需要在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。
我该如何解决这个问题?