fortran读取文件的一个问题
现在由以下的文件,存于txt格式的文件里54
0.16666667 0.16666667 0
0 0.16666667 0.16666667
0.16666667 0.16666667 0.33333333
0 0.16666667 0.5
0.16666667 0.16666667 0.66666667
0 0.16666667 0.83333333
0.16666667 0.5 0
0 0.5 0.16666667
0.16666667 0.5 0.33333333
0 0.5 0.5
0.16666667 0.5 0.66666667
0 0.5 0.83333333
0.16666667 0.83333333 0
0 0.83333333 0.16666667
0.16666667 0.83333333 0.33333333
0 0.83333333 0.5
0.16666667 0.83333333 0.66666667
0 0.83333333 0.83333333
0.5 0.16666667 0
0.33333333 0.16666667 0.16666667
0.5 0.16666667 0.33333333
0.33333333 0.16666667 0.5
0.5 0.16666667 0.66666667
0.33333333 0.16666667 0.83333333
0.5 0.5 0
0.33333333 0.5 0.16666667
0.5 0.5 0.33333333
0.33333333 0.5 0.5
0.5 0.5 0.66666667
0.33333333 0.5 0.83333333
0.5 0.83333333 0
0.33333333 0.83333333 0.16666667
0.5 0.83333333 0.33333333
0.33333333 0.83333333 0.5
0.5 0.83333333 0.66666667
0.33333333 0.83333333 0.83333333
0.83333333 0.16666667 0
0.66666667 0.16666667 0.16666667
0.83333333 0.16666667 0.33333333
0.66666667 0.16666667 0.5
0.83333333 0.16666667 0.66666667
0.66666667 0.16666667 0.83333333
0.83333333 0.5 0
0.66666667 0.5 0.16666667
0.83333333 0.5 0.33333333
0.66666667 0.5 0.5
0.83333333 0.5 0.66666667
0.66666667 0.5 0.83333333
0.83333333 0.83333333 0
0.66666667 0.83333333 0.16666667
0.83333333 0.83333333 0.33333333
0.66666667 0.83333333 0.5
0.83333333 0.83333333 0.66666667
0.66666667 0.83333333 0.83333333
54
0 0 0
0.16666667 0 0.16666667
0 0 0.33333333
0.16666667 0 0.5
0 0 0.66666667
0.16666667 0 0.83333333
0 0.33333333 0
0.16666667 0.33333333 0.16666667
0 0.33333333 0.33333333
0.16666667 0.33333333 0.5
0 0.33333333 0.66666667
0.16666667 0.33333333 0.83333333
0 0.66666667 0
0.16666667 0.66666667 0.16666667
0 0.66666667 0.33333333
0.16666667 0.66666667 0.5
0 0.66666667 0.66666667
0.16666667 0.66666667 0.83333333
0.33333333 0 0
0.5 0 0.16666667
0.33333333 0 0.33333333
0.5 0 0.5
0.33333333 0 0.66666667
0.5 0 0.83333333
0.33333333 0.33333333 0
0.5 0.33333333 0.16666667
0.33333333 0.33333333 0.33333333
0.5 0.33333333 0.5
0.33333333 0.33333333 0.66666667
0.5 0.33333333 0.83333333
0.33333333 0.66666667 0
0.5 0.66666667 0.16666667
0.33333333 0.66666667 0.33333333
0.5 0.66666667 0.5
0.33333333 0.66666667 0.66666667
0.5 0.66666667 0.83333333
0.66666667 0 0
0.83333333 0 0.16666667
0.66666667 0 0.33333333
0.83333333 0 0.5
0.66666667 0 0.66666667
0.83333333 0 0.83333333
0.66666667 0.33333333 0
0.83333333 0.33333333 0.16666667
0.66666667 0.33333333 0.33333333
0.83333333 0.33333333 0.5
0.66666667 0.33333333 0.66666667
0.83333333 0.33333333 0.83333333
0.66666667 0.66666667 0
0.83333333 0.66666667 0.16666667
0.66666667 0.66666667 0.33333333
0.83333333 0.66666667 0.5
0.66666667 0.66666667 0.66666667
0.83333333 0.66666667 0.83333333
其中有两行只有一个数字,存于count1和count2变量中,剩下的存于一
个3*count1的数组以及3*count2的数组中。
请问用fortran90如何实现啊?
非常感谢! lz看看这样的思路行不行
首先读取第一行的数字,存在count1中,然后建立个动态数组,大小在程序中定为3*count1,然后读取接下来的3*count1个元素。代码如下
program read_data
implicit none
integer::i
integer::count1
integer::count2
real,allocatable::data1(:)
real,allocatable::data2(:)
open(unit=10,file='data.txt')
read(10,*) count1 !首先读取接下来的数据有多少行
allocate(data1(3*count1)) !分配3×count1大小的空间
read(10,*) data1 !读取这些数据到data1数组中
write(*,*) data1
read(10,*) count2 !重复count1的方法
allocate(data2(3*count2))
read(10,*) data2
write(*,*) data2
deallocate(data1)
deallocate(data2)
close(10)
end
页:
[1]