问题描述
文本文件中有一组数据,即每小时的温度和降雨量。我想以特定的方式在Fortran中读取这些数据。
文本文件中的数据:
Day 1 Hour 1 Temp rain
Day 1 Hour 2 Temp rain
Day 1 Hour 3 Temp rain
...
Day 1 Hour 24 Temp rain
Day 2 Hour 1 Temp rain
Day 2 Hour 2 Temp rain
Day 2 Hour 3 Temp rain
...
Day 2 Hour 24 Temp rain
Day 3 Hour 1 Temp rain
...
。
DO loop1
Read the first 24 hours of data from the text file
{Do some procedures using First 24 hour data}
Read Second 24 hours of data from the text file
{Do some procedures using First 24 hour data}
End DO
我希望下一个DO循环以以下方式工作
DO loop2
Read second 24 hours **(I want to read the Second 24-hour data
again in this loop,how can I read this set again since its once read in loop 1?.**
{Do some procedures using second 24-hour data}
Read the third 24 hours of data from the text file
{Do some procedures using third 24-hour data}
End DO loop2
解决方法
您的问题令人困惑。
我了解的是,您需要将第一天与第二天进行比较,然后将第二天与第三天进行比较,然后将第三天与第四天进行比较,依此类推。
由于某种原因,您认为每次都需要读取数据。事实并非如此。您既可以一次读取所有数据,然后将所有数据保存在内存中,也可以,如果它太大(并且确实需要很大才能太大,别忘了,10MB的RAM可以容纳10个以上一百万个64位浮点数),您可以像这样每天阅读:
real :: data1(24),data2(24)
...
<read data1>
<work on data1>
do
<read data2>
<if EOF exit>
<work on data2>
<compare data1 and data2>
data1 = data2
end do