starbinbin_csu 发表于 2010-11-13 23:43:23

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如何实现啊?
非常感谢!

baggio1987 发表于 2010-11-14 19:03:15

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]
查看完整版本: fortran读取文件的一个问题