program aveg implicit none integer*4 n0 parameter (n0=2000) integer*4 it(n0),ig,i,nat,ix real*8 x(3),a(n0,3) write(6,*)' Makes average geometry from geometries in FILE.X' open(9,file='FILE.X') ig=0 1 read(9,*,end=99,err=99) read(9,*,end=99,err=99)nat if(nat.gt.n0)call report('too many atoms') ig=ig+1 if(ig.eq.1)then write(6,*)nat,' atoms' do 4 i=1,nat 4 a(i,ix)=0.0d0 endif do 3 i=1,nat read(9,*)it(i),(x(ix),ix=1,3) do 3 ix=1,3 3 a(i,ix)=a(i,ix)+x(ix) goto 1 99 close(9) write(6,*)ig,' geometries' if(ig.eq.0)stop do 5 i=1,nat do 5 ix=1,3 5 a(i,ix)=a(i,ix)/dble(ig) open(9,file='AVE.X') write(9,*)'average geometry from ',ig write(9,*)nat do 2 i=1,nat 2 write(9,900)it(i),(a(i,ix),ix=1,3) 900 format(i6,3f12.6) close(9) stop end subroutine report(o) character*(*) o write(6,*)o stop end