我尝试使用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个顶级变量。我能在这里做得更好吗?