【问题标题】:Fortran 95: output file with long headerFortran 95:带有长标题的输出文件
【发布时间】:2014-03-19 23:46:36
【问题描述】:

假设我想输出一个文件,该文件应该有一些固定的标题行(即独立于我的程序实现的计算),然后是我的代码生成的信息,例如:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi ut est in augue rhoncus lobortis.
0.10, 0.31, 0.73
0.34, 0.64, 0.27

前两行始终相同,但后两行由代码给出(为了本示例,将它们视为 6 个随机浮点数)。产生这种情况的一种方法是使用以下代码:

[...]
open(unit=11,file="output.TXT")
write(11,*) "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
write(11,*) "Morbi ut est in augue rhoncus lobortis."
write(11,*) x(1,1:3)
write(11,*) x(2,1:3)
[...]

由于提到的标题只有两行,所以这种方法效果很好。现在假设标题有 1000 行长。这种方法显然不会是解决这个问题的最好方法。另一方面,可以创建一个名为output.TXT的文件,在上面写上标题,然后通过以下语句打开它:

[...]
open(unit=11,file="output.TXT",position="APPEND")
[...]

这将确保 Fortran 输出将写在标头之后。

现在,我想找到一种方法(如果存在这样的方法),可以处理如此大的标题,而不必向用户提供文件output.TXT。换句话说:我希望能够将标头信息存储在我的代码中,然后将其输出到提到的文件中,但要通过费力的write(11,*) "text line 1"write(11,*) "text line 2" 等其他方法来完成。

Fortran 中是否存在这样的事情?谁能指出我正确的方向?

【问题讨论】:

    标签: file-io fortran output fortran95


    【解决方案1】:

    你可以声明character (len=80), dimension (1000) :: lines,然后有1000条语句line(1) = "xyz",等等。然后有一个循环来写这些行。写部分很简单。无法将原始文本嵌入到 Fortran 源代码中……您必须将其放入带有 DATA 或赋值语句的变量中。

    对我来说,拥有一个代码读取然后复制到输出文件的标准文件会更容易。您可以有一个环境变量来指定文件或其目录。

    【讨论】:

    • 感谢您的回答,确实数据语句解决了问题。我确实理解从文件中读取然后输出到另一个文件会更容易,但在我的特殊情况下这是不需要的,我真的更愿意只给用户一个可执行文件而不是其他文件。再次感谢您的快速回复。
    猜你喜欢
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多