计算Fortran循环中的行数

时间:2017-06-05 14:34:59

标签: loops fortran

我有一个时间序列数据,从0到15000行和几列。我希望以60秒的间隔分隔数据,并计算每个间隔内的数据量。

我创建了一个do循环,可以正确地创建从文件的开始到结尾的60s的间隔,但是,我不知道如何计算每个区间内的行数。

我正在寻找的最终结果是结果有两列: 区间数和行数。

这是我到目前为止所得到的:

program flash_selection

implicit none       

integer i, zero, qtd, cellnumb, flashcell, tipo, segment

real time, Etrig, xtrig, ytrig, ztrig, poscharge, negq, chargeneutr

open(1,file='my_file.txt',status='OLD') 

read(1,*)                                           

do 

read(1,*,end=100) qtd, time, cellnumb, flashcell, tipo, segment, Etrig, xtrig, ytrig, ztrig, poscharge, negq, chargeneutr

do i = 1, 420

open(2,file='test.txt')

if (time .GE. (i-1)*60 .AND. time .LT. i*60) then

write(2,*) qtd, time, tipo, segment, Etrig, xtrig, ytrig, ztrig, poscharge, negq, chargeneutr

end if

end do 
end do

IF语句根据我的需要正确地分离数据,唯一剩下的就是知道每个区间60的行数。

1 个答案:

答案 0 :(得分:0)

只需添加<FormattedRelative value={0} initialNow={1248341} /> 变量即可。每次循环增加counter。 IF测试成功后,打印出counter,然后将其设置为零。

(顺便说一下 - 不确定你的循环中是否有counter语句。你应该使用大于10的文件号。)