Fortran:行到长/追加行 - 但最后有文字?

时间:2008-12-17 00:59:22

标签: syntax fortran fortran77

我有一行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 ...

4 个答案:

答案 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)

  1. 是的,a是一个延续字符,基本上只是意味着在连续字符(第6列,右边?)之后从上一行开始追加该行的其余部分。
  2. 你的Fortran编译器可能有一个选项来打开“自由格式”输入而不是使用“固定格式”输入。使用此功能,您无需担心线路长度。
  3. 如果您的Fortran编译器早于F90 - 我认为自由格式输入能力已经开始,那么您表示哀悼。

答案 3 :(得分:0)

@Mike B:

在一个理想的世界中是的,但在这种情况下,代码是在一台机器上开发的,并提交给构建服务器,该服务器具有可用于构建的相应第三方软件/ SDK /许可证。构建也不是很快。