首页 > 解决方案 > 如何从 dat 文件中提取数据?

问题描述

我想使用 fortran 代码在我的 .dat 文件的 1、3、5、9、11、.... 行中提取值。这是我的代码

   program one
   integer x, y, z

   open (unit=10, file='try.dat', status='old')
   open (unit=20, file='run_energy.dat', status='unknown')
   dimension time(40), energy(40)


   do y=1,13
   z=2*(y-1)
   do x=(z+1),(z+1)
   read (10,*) time(x), energy(x)
   write(20,*) time(x), energy(x)
   end do
   end do
   stop
   end

~
但是,我没有得到与我上面提到的行相对应的值。你能请任何人帮助我吗?

谢谢你。

标签: fortran

解决方案


您需要跳过行(虚拟读取)。像这样的东西:

   x = 1 
   do i=1,13
     ! Read only if at correct line of 'try.dat'
     if (i == 2*(x-1)+1) then 
       read (10,*) time(x), energy(x)
       write(20,*) time(x), energy(x)
       ! Increment x 
       x=x+1
     else
       ! Skip line
       read (10,*)
     end if
   end do

亲切的问候。


推荐阅读