Syntax Fortran:行到长/追加行-但在末尾有文本?

Syntax Fortran:行到长/追加行-但在末尾有文本?,syntax,fortran,fortran77,Syntax,Fortran,Fortran77,我有一行Fortran代码,其中包括一些文本。我正在更改文本,这使得代码行对于Fortran来说太长,所以我使用“a”将其拆分为两行 是: 改为: IF (MYVAR .EQ. 1) THEN WRITE(iott,'(A) (A)') 'ABC DEF GHI JK a ' // 'L=', SOMEVAR 我的问题是,在新行(以“a”开头)中,“a”和第一个“a”之间的空白是否会附加到字符串中?或者我是否需要将“”作为a旁边的字符,以防止出现额外的空白 正如你所知,我不习惯Fo

我有一行Fortran代码,其中包括一些文本。我正在更改文本,这使得代码行对于Fortran来说太长,所以我使用“a”将其拆分为两行

是:

改为:

  IF (MYVAR .EQ. 1) THEN
    WRITE(iott,'(A) (A)') 'ABC DEF GHI JK
a ' // 'L=', SOMEVAR
我的问题是,在新行(以“a”开头)中,“a”和第一个“a”之间的空白是否会附加到字符串中?或者我是否需要将“”作为a旁边的字符,以防止出现额外的空白


正如你所知,我不习惯Fortran…

我已经太长时间不记得Fortran的旧列要求了(它们甚至可能不像很久以前那样严格)

但是-这不是一个快速的测试运行会马上告诉你的吗

  • 是的,
    a
    是一个连续字符,基本上它只意味着将这一行的其余部分从连续字符(第6列,对吗?)后面追加到前一行
  • 您的Fortran编译器可能有打开“自由形式”输入而不是使用“固定形式”输入的选项。使用此选项,您就不必担心行长度
  • 如果您的Fortran编译器早于F90——我认为这是自由形式输入功能开始的时候,那么我向您表示哀悼
  • @迈克B:


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

    如果您担心超过72列的限制,那么我假设您使用的是Fortran 77。Fortran 77的语法要求从第7列开始,但连续行除外,第6列中需要一个连续字符。我使用以下方法告诉我一条语句有多少行是连续的(第一行只是显示列):

    这将打印:

    Lorem Ipsum Foo Bar
    
    您不必担心没有引号的空格。无论如何,所有的空白都会在Fortran中被压缩

    学习如何使用语句是值得的。它们可以使输出更容易。这有点类似于printf语句,如果您来自C语言,那么您可以使用不同类型的参数指定一种格式,然后提供变量或文本来填充该格式


    不要担心你没有使用当今流行的新语言。您可以从Fortran,甚至Fortran 77中学到很多东西,如果使用得当,Fortran甚至可以非常优雅。我见过Fortran 77像面向对象语言一样编写,并带有动态内存。我喜欢说,“old.ne.bad”。

    GNU编译器集合包括一个Fortran编译器。这可能足以让你回答这样的问题。这只是一个挑剔的问题,@Dylan,但标题应该是“行太长”。72列限制,或其他任意数字,出于美观的原因(或者如果你试图在手机上阅读代码,则功能性:)也是有意义的。因此,这个问题可能不仅仅适用于编写固定格式的F77代码。还有一些其他的线路延续策略。
    !234567890
          write(*,*)"Lorem Ipsum",
         1 " Foo",
         2 " Bar"
    
    Lorem Ipsum Foo Bar