以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言使用经验交流  (http://fortran.cn/bbs/list.asp?boardid=2)
----  [求助]fortran的文件读取的一个问题  (http://fortran.cn/bbs/dispbbs.asp?boardid=2&id=2084)

--  作者:starbinbin
--  发布时间:2010/11/13 23:42:39

--  [求助]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如何实现啊?

非常感谢!


--  作者:大胆想
--  发布时间:2011/3/3 18:18:21

--  
用自由格式读
--  作者:whl2dxl
--  发布时间:2011/4/18 1:31:04

--  
read(*,*)应该可以吧
--  作者:tsz2008
--  发布时间:2011/5/3 19:35:34

--  

    将上面的数据文件保存在dat.txt中,执行下面的程序后,会生成一个dat_out.txt的文件,与原数据文件内空一样

      real*8 count1(3,54),count2(3,54)
      integer counta,countb
      
      open(10,file=\'dat.txt\')
      open(20,file=\'dat_out.txt\')
      
      
      read(10,*)counta
      write(20,\'(1x,I2)\')counta
      
      do 10 i=1,54
      read(10,*) count1(1,i),count1(2,i),count1(3,i)
      write(20,\'(1x,3f12.8)\')count1(1,i),count1(2,i),count1(3,i)
10    continue

      read(10,*)countb
      write(20,\'(1x,I2)\')counta
      
      do 20 i=1,54
      read(10,*) count2(1,i),count2(2,i),count2(3,i)
      write(20,\'(1x,3f12.8)\')count2(1,i),count2(2,i),count2(3,i)
20    continue
      close(10)
      close(20)
      end


京ICP备05056801号