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