11 real(8),
intent(in) :: vhpl(3)
14 integer ivh0(3),ivk0(3),ihk
15 integer ivhb(3,0:1,0:1,0:1)
16 integer ivkb(3,0:1,0:1,0:1)
17 integer isym,lspl,ik,jk,i,j,k
18 real(8) vpl(3),fb(0:1,0:1,0:1)
19 real(8) f00,f01,f10,f11,f0,f1
20 real(8) v0(3),v1(3),v2(3),t1,t2
22 ivh0(:)=floor(vhpl(:))
23 vpl(:)=vhpl(:)-dble(ivh0(:))
24 v1(:)=vpl(:)*dble(
ngridk(:))
27 do i=0,1;
do j=0,1;
do k=0,1
28 ivkb(1,i,j,k)=ivk0(1)+i
29 ivkb(2,i,j,k)=ivk0(2)+j
30 ivkb(3,i,j,k)=ivk0(3)+k
31 ivhb(:,i,j,k)=ivh0(:)+ivkb(:,i,j,k)/
ngridk(:)
32 ivkb(:,i,j,k)=modulo(ivkb(:,i,j,k),
ngridk(:))
33 end do; end do; end do
35 do i=0,1;
do j=0,1;
do k=0,1
38 jk=
ivkiknr(ivkb(1,i,j,k),ivkb(2,i,j,k),ivkb(3,i,j,k))
40 v1(:)=dble(ivhb(:,i,j,k))+
vkl(:,jk)
42 if ((i == 0).and.(j == 0).and.(k == 0)) v0(:)=v1(:)
46 t1=sqrt(v2(1)**2+v2(2)**2+v2(3)**2)
55 t1=abs(v2(1)-vhkl(1,ihk,1,ik)) &
56 +abs(v2(2)-vhkl(2,ihk,1,ik)) &
57 +abs(v2(3)-vhkl(3,ihk,1,ik))
59 fb(i,j,k)=rfhk(ihk,ik)
63 end do; end do; end do
65 t2=(vhpl(1)-v0(1))*dble(
ngridk(1))
67 f00=fb(0,0,0)*t1+fb(1,0,0)*t2
68 f01=fb(0,0,1)*t1+fb(1,0,1)*t2
69 f10=fb(0,1,0)*t1+fb(1,1,0)*t2
70 f11=fb(0,1,1)*t1+fb(1,1,1)*t2
71 t2=(vhpl(2)-v0(2))*dble(
ngridk(2))
75 t2=(vhpl(3)-v0(3))*dble(
ngridk(3))
integer, dimension(3, 3, 48) symlat
integer, dimension(maxsymcrys) lsplsymc
integer, dimension(3) ngridk
real(8), dimension(3, 3) bvec
real(8), dimension(:,:), allocatable vkl
real(8) function rfhkintp(vhpl, rfhk)
subroutine findkpt(vpl, isym, ik)
integer, dimension(:,:,:), allocatable ivkiknr