Fortran 95:带有长标头的输出文件

时间:2014-03-19 23:46:36

标签: file-io fortran output fortran95

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

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中存在这样的事情吗?有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

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

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