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

我正确理解fortran格式了吗?[副本]

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

    ForceToForce.f90:119.34:
    
         99 FORMAT(3(F15.10),X,3I)
                                  1
    Error: Nonnegative width required in format string at (1)
    ForceToForce.f90:120.37:
    
         111 FORMAT(4(F15.10),X,2(3I))
                                     1
    Error: Nonnegative width required in format string at (1)
    ForceToForce.f90:153.60:
    
                           WRITE(399999,FMT=111)QPCOM(i,1),QPCOM(i
                                                            1
    Error: FORMAT label 111 at (1) not defined
    

    我做了一些研究,我知道你需要在I后面加一个整数来表示所用的位置数。所以我把线路改成

    111 FORMAT(4(F15.10),X,2(I3))
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   Vladimir F Героям слава    7 年前

    不,那是错误的。 2(3I) 2(I3) 是两个整数,每个整数的宽度为3个字符。

    Fortran标准要求为I编辑描述符指定非负宽度,如下所示: 清晰地 Error: Nonnegative width required in format string at (1) 以前的代码可能由英特尔Fortran编译,但英特尔Fortran没有严格执行此限制。

    3I0 你应该很好,行为可能会保持不变。