1

我在需要用 Fortran 读取的文件中有一些时域数据,看起来像这样的重复:

0.0000E+000
       2  %  number of particles
       4  %  number of values
0.00000E+000
0.00000E+000
0.00000E+000
0.00000E+000
       4  %  number of values 
0.00000E+000
0.00000E+000
0.00000E+000
0.00000E+000

其中第一行是当前时间,我需要数组中的其他值,该数组的大小由粒子和值的数量决定。理想情况下,read_values()对子例程的每次调用都会获取该数据的一大块(在下一次),但我不确定如何跳过注释。有没有一种简单的方法可以在阅读后简单地前进到下一行?

4

1 回答 1

1

Fortran I/O 通常是基于记录的(新的stream访问方法不是)。对于格式化文件,这意味着行。Fortranread通常从一行读取,下一次读取将读取下一行……除非您明确使用非高级选项。如果您知道哪些行有整数,请使用仅使用该行的那一部分的格式读取整数。这似乎I8与您的文件有关。读取不会处理带有注释的其余行。下一次读取将从下一行读取。如果您不知道哪些行包含哪种类型的数据,那么您可以将每一行读入一个字符串并分析该字符串以决定如何从该字符串中读取。

于 2013-06-05T18:01:06.740 回答