1 subroutine defrad(doiso) 2c supplies default radius ( see keyword EDGE ) 3 implicit double precision (a-h,o-z) 4 parameter (numatm=2000) 5 parameter (mxvalc=10) 6 parameter (max3d=61) 7 common /plane/ px, py, pz, cx, cy, cz, r(3),v1(3),v2(3),iplat 8 common /moldat/ natoms, norbs, nelecs,nat(numatm) 9 common /coord / xyz(3,numatm) 10 common /srfhlp/edge,ctval(mxvalc),pxyz(3),nvalc,nspts,istyp 11 logical doiso 12 dimension vec(3) 13 14 if (doiso) then 15 16 call cntvc2(pxyz,xyz,natoms) 17 edge = 0.0d0 18 do i=1,natoms 19 dist = dist2(pxyz,xyz(1,i)) 20 if (dist.gt.edge) edge = dist 21 end do 22 edge = dsqrt(edge)*2.0d0 23 24 edge = edge + 7.0d0 25 26 nspts = edge / 0.3d0 27 if (nspts.gt.max3d) nspts = max3d 28 29 else 30 31 call cntvec(vec,xyz,nat,natoms) 32 r(1) = 0.0d0 33 do i=1,natoms 34 dist = (xyz(1,i)-px)**2 + 35 & (xyz(2,i)-py)**2 + 36 & (xyz(3,i)-pz)**2 37 if (dist.gt.r(1)) r(1) = dist 38 end do 39 r(1) = dsqrt(r(1))*2.4d0 40 r(2) = r(1) 41 r(3) = r(1) 42 43 endif 44 45 return 46 end 47