program delcub implicit none character*40 fn,sn character*80 s80 integer*4 inat,nat,grid(3),ia,ix,iy,iz,i,iad real*8 lim,ax,ay,az,px,py,pz,xp,yp,zp,d,dist,limau, 1xx,yy,zz real*8,allocatable::x(:,:),orb(:) call getarg(1,fn) call getarg(2,sn) read(sn,*)lim open(8,file=fn) open(9,file='new'//fn) read(8,2000)s80 2000 format(a80) write(9,2000)s80 read(8,2000)s80 write(9,2000)s80 read(8,*)inat,ax,ay,az nat=iabs(inat) write(9,2001)nat,ax,ay,az 2001 format(i5,3f12.6) write(6,*)nat,' atoms' allocate(x(3,nat)) read(8,*)grid(1),px write(9,2001)grid(1),px,0.0d0,0.0d0 read(8,*)grid(2),py,py write(9,2001)grid(2),0.0d0,py,0.0d0 read(8,*)grid(3),pz,pz,pz write(9,2001)grid(3),0.0d0,0.0d0,pz do 902 ia=1,nat read(8,2000)s80 read(s80(18:80),*)(x(i,ia),i=1,3) 902 write(9,2000)s80 c read(8,905)j,(idum,i=1,j) c05 format(10i5) allocate(orb(grid(3))) limau=lim/0.529177d0 write(6,6001)ax,ay,az,px,py,pz,limau 6001 format(' ax ay az: ',3f10.3,/, 1 ' px py pz: ',3f10.3,/, 1 ' limau : ', f10.3) xp=ax-px do 906 ix=1,grid(1) xp=xp+px yp=ay-py do 906 iy=1,grid(2) yp=yp+py read( 8,4000)(orb(iz),iz=1,grid(3)) 4000 format(6E13.5) zp=az-pz do 1 iz=1,grid(3) zp=zp+pz dist=dsqrt((x(1,1)-xp)**2+(x(2,1)-yp)**2+(x(3,1)-zp)**2) do 2 ia=2,nat d=dsqrt( (x(1,ia)-xp)**2+(x(2,ia)-yp)**2+(x(3,ia)-zp)**2 ) if(d.lt.dist)then dist=d iad=ia endif 2 continue if(dist.gt.limau)then orb(iz)=0.0d0 1 continue 906 write(9,4000)(orb(iz),iz=1,grid(3)) close(8) close(9) end