我有一行Fortran代码,其中包含一些文本。我正在更改文本,这使得Fortran的代码行太长,所以我使用'a'将它分成两行。
当时:
IF (MYVAR .EQ. 1) THEN
WRITE(iott,'(A) (A)') 'ABC=', SOMEVAR
更改为:
IF (MYVAR .EQ. 1) THEN
WRITE(iott,'(A) (A)') 'ABC DEF GHI JK
a ' // 'L=', SOMEVAR
我的问题是,在新行(以'a'开头)中,'a'和第一个'之间的空格是否附加到字符串?或者我是否需要'成为旁边的字符以防止额外的空格?
正如你所知,我不习惯Fortran ...
答案 0 :(得分:3)
如果您担心超过72列限制,那么我假设您正在使用Fortran 77. Fortran 77的语法要求您从第7列开始,除了续行,这需要列中的连续字符6.我使用以下方法告诉我一个语句有多少行(第一行只显示列):
!234567890
write(*,*)"Lorem Ipsum",
1 " Foo",
2 " Bar"
这将打印:
Lorem Ipsum Foo Bar
您不必担心没有引号的空格。无论如何,所有空格都在Fortran中压缩。
学习如何使用format语句是值得的。它们可以使输出更容易。如果你来自C,它有点类似于printf语句。你指定一个具有不同类型参数的格式,然后给出变量或文字来填写那种格式。
不要担心你没有使用当时热门的新语言。您可以从Fortran,甚至Fortran 77中学到很多东西,如果使用得当,Fortran甚至可以优雅。我已经看到Fortran 77就像是一个面向对象的语言,完整的动态内存。我想说,“old.ne.bad”。
答案 1 :(得分:0)
对我来说,记住FORTRAN的旧列要求已经太久了(而且它们甚至可能不像以后那样严格)。
但是 - 这不是快速测试会直接告诉你的东西吗?
答案 2 :(得分:0)
a
是一个延续字符,基本上只是意味着在连续字符(第6列,右边?)之后从上一行开始追加该行的其余部分。答案 3 :(得分:0)
@Mike B:
在一个理想的世界中是的,但在这种情况下,代码是在一台机器上开发的,并提交给构建服务器,该服务器具有可用于构建的相应第三方软件/ SDK /许可证。构建也不是很快。