你的问题是由于固定格式的Fortran所限制,每行只允许72个字符。例如,可以看看源代码中如何处理g0
:
dimension gh(3451),g0(120) !... more declarations cut from this
c
data g0/ -31543.,-2298., 5922., -677., 2905.,-1061., 924., 1121., 1900
1 1022.,-1469., -330., 1256., 3., 572., 523., 876., 1900
2 628., 195., 660., -69., -361., -210., 134., -75., 1900
3 -184., 328., -210., 264., 53., 5., -33., -86., 1900
4 -124., -16., 3., 63., 61., -9., -11., 83., 1900
5 -217., 2., -58., -35., 59., 36., -90., -69., 1900
6 70., -55., -45., 0., -13., 34., -10., -41., 1900
7 -1., -21., 28., 18., -12., 6., -22., 11., 1900
8 8., 8., -4., -14., -9., 7., 1., -13., 1900
9 2., 5., -9., 16., 5., -5., 8., -18., 1900
a 8., 10., -20., 1., 14., -11., 5., 12., 1900
b -3., 1., -2., -2., 8., 2., 10., -1., 1900
c -2., -1., 2., -3., -4., 2., 2., 1., 1900
d -5., 2., -2., 6., 6., -4., 4., 0., 1900
e 0., -2., 2., 4., 2., 0., 0., -6./ 1900
!23456789012345678901234567890123456789012345678901234567890123456789012XXXXX
! 1 2 3 4 5 6 7 XXXXX
这里有两个需要注意的问题。首先,数值1900
不是数组的一部分。第72个字符是最后一个逗号,这些剩余数字被截断了。其次,当你给这些数字加上D0
后,你会把最后一个实际值推到72列之外,然后它就被截断了,现在你的变量比数值少。
要解决这个问题,可以通过编译器选项增加固定格式行长度,但必须确保尾随数值(例如1900
)仍然被截断。或者,可以使用更多的连续行来重构数据声明,以适应所有内容都在72列限制内。无论你选择哪种方法,都需要确保1900值在列限制之外,或者将它们全部删除。