代码之家  ›  专栏  ›  技术社区  ›  gansub

使用pgfortran的行延拓

  •  0
  • gansub  · 技术社区  · 7 年前

    我试图用pgf90或pgfortran编译一个文件(可以处理各种源文件,如f90或f77),该文件是用fortran 77构造编写的(即具有.f扩展名)。我的问题是关于行延拓。

    open(10,file='/home/adaba/original/potentialenergy/vorticity/data/run/fort.10')
    

    所以这一行显然超越了第72列。这是我尝试的。我试着用“&”把它分成两行新行第6列的字符并编译。它编译得很好,但是当我运行程序时,我得到一个错误,说没有找到这样的文件,因为它将行连续性解释为run和fort之间的额外空间。10并且它报告未找到文件。

    有pgi fortran经验的人能帮上忙吗?

    更新

    open(10,file='/home/adabas/originalPV/potentialenergy/vorticity/' // &
     &     'data/run/fort.10')
    

    pgf版本为17.0.4 64位

    2 回复  |  直到 7 年前
        1
  •  1
  •   Ross    7 年前

    在我脑海里,有几件事我会先试试。

    fixed format -Mextend 编译器标志。

    或者,您应该能够通过将文件名拆分为两行来构造文件名。类似于:

     open(10,file='/home/adaba/original/' //
    & 'potentialenergy/vorticity/data/run/fort.10')
    

    哪里 // fname 首先,例如。

        2
  •  1
  •   Scientist    7 年前

    在上面的@Ross答案上展开:

    open(10,file = "/home/adaba/original/& &potentialenergy/vorticity/data/run/fort.10" )

    这里只有一个字符串被拆分并连续成两行。两个符号之间的空白被完全忽略。但是第一个和第二个符号之前和之后的任何内容,即使是空白,都算作字符串的一部分。