我想在DATA
语句中初始化Fortran 77中的长字符串,如下所示:
DATA Lipsum /
*'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendi
*sse tincidunt, velit id hendrerit bibendum, erat nisl dignissim ar
*cu'/
但是我所贡献的程序的内部策略不喜欢它,因为它禁止带有奇数引号的行。
我可以通过使用双引号来“欺骗”策略检查器,或者使用'
作为延续字符(在第一行和最后一行),但我想知道是否还有其他方法在DATA
语句中包含长字符串,其中似乎不允许连接运算符//
。
答案 0 :(得分:2)
一种方法是声明一个短字符串数组并与您的长字符串等效:
character*63 cshort(3)/
*'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspen',
*'disse tincidunt, velit id hendrerit bibendum, erat nisl digniss',
*'im arcu'/
character*180 clong
equivalence (cshort,clong)
为此,您需要计算字符并确保每一行 但是最后一个具有短字符串的确切长度。注63是最大字符串长度,它将与引号和逗号一起包含在72列中。
答案 1 :(得分:0)
gfortran中存在过去时代的回归。其他编译器也可以拥有它,我没有检查过。 对于长字符串,在任何连续行的第73列放置一个&符号,并且在第6列中始终使用&符号(第1-5列保留用于标签)以启动连续行。 这是一个显示长串数字的代码片段:
character (*), parameter :: &
p = '31415926535897932384626433832795028841971693993751058209749445923&
&078164062862089986280348253421170679821480865132823066470938446095&
&50582231725359408128481117450284102701938521105559644622948954930'