Fortran:数组初始化超过了``ir_list_tbl``的最大表大小

时间:2014-06-16 09:22:22

标签: arrays multidimensional-array fortran lookup-tables

我尝试使用include语句初始化Fortran中的查找表,该语句使用DATA语句声明LUT的值。 LUT声明如下:

REAL DIMENSION(400, 500, 15) :: my_array
INCLUDE '/path/to/my/file.incf'

包含文件如下所示:

...
DATA my_array (390:400, 499, 5) = / 0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9 /
DATA my_array (1:10, 500, 5) = / 1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9 /
...

我的真实数据没有结构化,因此LUT结构确实是必要的:)我想将它编译到程序中,这样我就不必在运行时读取它。

当我尝试编译时,出现以下错误:

ftn-237 crayftn: LIMIT SRC_RADIATION, File = /path/to/my/file.incf, Line = 127436 
  Maximum table size has been exceeded for the "ir_list_tbl".

据我了解,ir_list_tbl用于记账,但由于我实际上只是将值保存在单个变量中,所以我不理解这里的开销。我们在单个数组中讨论3,000,000个值而不是3,000,000个顶级变量。我能在这里做得更好吗?

1 个答案:

答案 0 :(得分:0)

如果在堆栈上创建显式形状的本地数组,则可能超出了stack size