捕获Fortran中的写例程

时间:2014-11-21 13:07:54

标签: io fortran

我(尝试!)维护一个非常大的FORTRAN代码集。此代码包含分散在各处的WRITE语句:

      WRITE(NOUT,2050)DAMPING 
2050  FORMAT(3X,'DAMPING =',F6.2,'%')

我希望能够控制这些WRITE语句。这样做的原因是我们需要创建一个额外的输出文件(经过一些修改),复制语句会有太多工作。相反,我希望修改它们......一种方法可能就是拥有自己的写例程:

      WRITEF(NOUT,2050)DAMPING 
2050  FORMAT(3X,'DAMPING =',F6.2,'%')

      --------------------------------

      SUBROUTINE WRITEF(objectToWrite)
      ...
      Code to write out object
      ...
      END

另一种可能是将write语句作为参数:

      WRITEF(WRITE(NOUT,2050)DAMPING) 
2050  FORMAT(3X,'DAMPING =',F6.2,'%')

      --------------------------------

      SUBROUTINE WRITEF(characterToWrite)
      ...
      Code to write out character
      ...
      END

但不幸的是,我缺乏FORTRAN知识,知道这是否可行,如果可行,如何实现它!

1 个答案:

答案 0 :(得分:0)

如果您为格式字符串交换FORMAT语句,则可以执行类似

的操作
  SUBROUTINE WRITE_REAL(unit,fmt, x)
    INTEGER unit
    CHARACTER(*) fmt
    REAL x
    write(unit,fmt) x
  END


  WRITEF(NOUT, "(3X,'DAMPING =',F6.2,'%')", DAMPING) 

但我告诉你它是否有用。我有点怀疑。