我(尝试!)维护一个非常大的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知识,知道这是否可行,如果可行,如何实现它!
答案 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)
但我告诉你它是否有用。我有点怀疑。