Fortran Coder

查看: 10936|回复: 2
打印 上一主题 下一主题

[输入输出] Fortran如何只读某几列数据

[复制链接]

23

帖子

9

主题

0

精华

熟手

F 币
134 元
贡献
82 点
跳转到指定楼层
楼主
发表于 2017-7-7 09:03:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想p1.f 读tmp100.txt中的最后四列,并保存出来,但是执行时会报错,求各位指点。
[Fortran] 纯文本查看 复制代码
      program mass centre
	  implicit real*8 (a-h,o-z)
c     qa: coordinations of atom	  
	  dimension qa(10000,3)
c     ns: number of atoms	  
	  dimension ns(10000)
c     qcm: coordinations of mass centre	  
	  dimension qcm(3)
c     wa: mass of atoms	  
	  dimension wa(10000)
c     u1,u2 are useless	  
	  character::u1(10000)
	  character::u2(10000)
	  parameter(N=14.00672)
	  parameter(H=1.00795)
	  parameter(C=12.01078)
	  open(1,file='tmp100.txt')
	  open(2,file='mass_centre')
	  do i=1,10000
	    do j=1,3
	      read(1,*)u1(i),u2(2),ns(i),qa(i,j)
		enddo
	  enddo
	  do i=1,10000
	    do j=1,3
		  write(2,*)ns(i),qa(i,1:10000)
		enddo
	  enddo
	  close(2)
	  end


tmp100.txt

439.45 KB, 下载次数: 18

分享到:  微信微信
收藏收藏1 点赞点赞1 点踩点踩

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2017-7-7 11:34:57 | 只看该作者
这个需求可以很简单的实现,楼主您写复杂了。
如果后面不再需要,ns 和 qa 都可以不用数组。
[Fortran] 纯文本查看 复制代码
program mascentre
  implicit none
  Integer , parameter :: N = 10000
  Real(8) :: qa(N,3)
  Integer :: ns(N) , i
  character::u
  open(11,file='tmp100.txt')
  open(12,file='mass_centre.txt')
  do i=1,N
    read(11,*) u ,u , ns(i),qa(i,:)
    write(12,'(i6,3(f13.6,1x))') ns(i) , qa(i,:)
  enddo
  close(11)
  close(12)
end program mascentre

23

帖子

9

主题

0

精华

熟手

F 币
134 元
贡献
82 点
板凳
 楼主| 发表于 2017-7-7 14:02:26 | 只看该作者
vvt 发表于 2017-7-7 11:34
这个需求可以很简单的实现,楼主您写复杂了。
如果后面不再需要,ns 和 qa 都可以不用数组。
[mw_shl_code= ...

多谢,多谢,十分感谢。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-1 00:57

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表