我在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()
子例程都会获取一个数据块(下次),但我不确定如何跳过注释。读取后是否有一种简单的方法可以简单地前进到下一行?
答案 0 :(得分:1)
Fortran I / O通常是基于记录的(新的stream
访问方法不是)。对于格式化文件,这意味着行。 Fortran read
通常从一行读取,下一行读取将读取下一行...除非您明确使用非前进选项。如果您知道哪些行具有整数,请使用仅使用该行部分的格式读取整数。您的文件似乎是I8
。读取不会处理注释的其余部分。下一行将从下一行读取。如果您不知道哪些行包含哪种类型的数据,那么您可以将每行读入字符串并分析字符串以决定如何从字符串中读取。