program capture use bmad implicit none parameter nmax=5000 integer lun, lun1 integer i, n integer k integer ios integer ix(nmax), number_remaining(nmax), number_on_turn(0:nmax), incident(200) integer total integer total_inc character*220 string, file(200)/200*''/ character*16 element(nmax) real(rp) turn(nmax), x_ave(nmax), y_ave(nmax), t_ave(nmax), vec(nmax,1:10) namelist/input/file lun=lunget() open(unit=lun,file='capture_list.dat', STATUS='old', IOSTAT=ios) READ (lun, NML=input, IOSTAT=ios) WRITE(6,NML=input) print *, 'ios=', ios rewind(unit=lun) ! READ (lun, NML=input) CLOSE(lun) lun1 = lunget() open(unit=lun1, file = 'capture.dat') do k=1,size(file) if(trim(file(k)) /= '')print *,' file = ',trim(file(k)) end do total_inc=0 total=0 do k=1,size(file) if(trim(file(k)) == '')cycle lun=lunget() open(unit=lun, file = file(k)) print *,' file = ',trim(file(k)) i=0 do while(.true.) read(lun,'(a)', end=99)string if(index(string,'Element')/= 0)cycle i=i+1 read(string,*,end=99)ix(i), turn(i), x_ave(i), y_ave(i), t_ave(i), vec(i,1:10), number_remaining(i), element(i) if(element(i) == 'BEGINNING')incident(k) = number_remaining(i) !if(i == 11)then ! print '(i10,14es12.4,1x,i10,1x,a16)',ix(i), turn(i), x_ave(i), y_ave(i), t_ave(i), vec(i,1:10), number_remaining(i), element(i) ! print '(a)', string !endif number_on_turn(int(turn(i))) = number_remaining(i) end do 99 continue write(lun1,'(a,1x,2i10,1x,es12.4)')trim(file(k)), number_on_turn(10), incident(k), float(number_on_turn(10))/incident(k) close(lun) total = number_on_turn(10) + total total_inc = incident(k)+total_inc end do write(lun1,'(a,1x,2i10,1x,es12.4)')'total', total, total_inc, float(total)/total_inc end