在fortran(ifort)的疯狂数量的延续线

时间:2010-11-17 09:38:06

标签: fortran fortran90 intel-fortran

显然,Fortran编译器中允许的延续行数存在限制。我有一个临时的病态案例(用于快速测试目的),我需要初始化一个庞大的数组而不打开文件或做任何诡计,只是以文字方式打击数据。数组非常大(360000个条目)。

如何将编译器的限制设置为无限制,或者我可以使用哪种替代策略来承载此数组初始化?

3 个答案:

答案 0 :(得分:3)

您可以使用隐式DO循环批量分配它们,直到编译器强加的持续限制:

REAL :: xarray(360000)

DATA (xarray(i) i=1,100) /1.0, 2.0, 3.0, 4.0, 5.0, 6.0, &
    7.0, 8.0, &
...
    98.0, 99.0, 100.0 /

 DATA (xarray(i) i=101,200) /101.0, 102.0, 103.0, 104.0, 105.0, 106.0, &
    107.0, 108.0, &
...
    198.0, 199.0, 200.0 /

我在很多科学的Fortran代码中看到了这一点。

答案 1 :(得分:1)

我不知道无限延续线的任何编译器设置,但我会建议这些替代方案:

  • 在一行上分配每个值
  • 将值放入文件中并阅读:)
  • 调用C函数来填充你的fortran数组

答案 2 :(得分:0)

编写一些代码以使用文本文件中的数据创建源文件。按行或某些方式拆分赋值,以帮助避免创建一个巨大的语句来一次初始化数组。记住生成代码的代码可以非常灵活。