1c 2c $Id$ 3c 4 5 SUBROUTINE ewald_setp() 6 7 implicit none 8 9 include 'p_const.inc' 10 include 'cm_latt.inc' 11 include 'cm_ewld.inc' 12 13 real*8 axb1,axb2,axb3,bxc1,bxc2,bxc3,cxa1,cxa2,cxa3 14 15 ralphsq=-0.25/alpha**2 16 17 axb1=rlatt(2,1)*rlatt(3,2)-rlatt(3,1)*rlatt(2,2) 18 axb2=rlatt(3,1)*rlatt(1,2)-rlatt(1,1)*rlatt(3,2) 19 axb3=rlatt(1,1)*rlatt(2,2)-rlatt(2,1)*rlatt(1,2) 20 bxc1=rlatt(2,2)*rlatt(3,3)-rlatt(3,2)*rlatt(2,3) 21 bxc2=rlatt(3,2)*rlatt(1,3)-rlatt(1,2)*rlatt(3,3) 22 bxc3=rlatt(1,2)*rlatt(2,3)-rlatt(2,2)*rlatt(1,3) 23 cxa1=rlatt(2,3)*rlatt(3,1)-rlatt(2,1)*rlatt(3,3) 24 cxa2=rlatt(1,1)*rlatt(3,3)-rlatt(3,1)*rlatt(1,3) 25 cxa3=rlatt(2,1)*rlatt(1,3)-rlatt(1,1)*rlatt(2,3) 26 27 rvol=abs(rlatt(1,1)*bxc1+rlatt(2,1)*bxc2+rlatt(3,1)*bxc3) 28 29 xvector=rvol/sqrt(bxc1*bxc1+bxc2*bxc2+bxc3*bxc3) 30 yvector=rvol/sqrt(cxa1*cxa1+cxa2*cxa2+cxa3*cxa3) 31 zvector=rvol/sqrt(axb1*axb1+axb2*axb2+axb3*axb3) 32 33 rksqmax=min(real(kmaxx)*xvector, 34 $ real(kmaxy)*yvector, 35 $ real(kmaxz)*zvector) 36 rksqmax=rksqmax*1.05*twopi 37 rksqmax=rksqmax**2 38 39 return 40 41 END 42