14integer nsym,isym,sym(3,3,48)
15real(8) v1(3),v2(3),v3(3)
17integer,
allocatable :: idx(:),ivh0(:,:)
18real(8),
allocatable :: vhc0(:,:),hc0(:)
22if (
allocated(
ivh))
deallocate(
ivh)
26if (
allocated(
vhc))
deallocate(
vhc)
28if (
allocated(
hc))
deallocate(
hc)
35 v1(:)=dble(i1)*
bvec(:,1)
37 v2(:)=v1(:)+dble(i2)*
bvec(:,2)
39 v3(:)=v2(:)+dble(i3)*
bvec(:,3)
48 hc0(ih)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2)
78 sym(:,:,nsym)=
symlat(:,:,isym)
91 sym(:,:,nsym)=
symlat(:,:,isym)
107 call i3mtv(sym(:,:,isym),ivh0(:,ih),iv(:))
109 k=abs(
ivh(1,jh)-iv(1))+abs(
ivh(2,jh)-iv(2))+abs(
ivh(3,jh)-iv(3))
131deallocate(idx,ivh0,vhc0,hc0)
subroutine gridsize(avec, gmaxvr, npfft, ngridg, ngtot, intgv)
pure subroutine i3mtv(a, x, y)
real(8), dimension(3, 3) bvec
real(8), dimension(3, 3) avec
integer, dimension(maxsymcrys) lspnsymc
logical, dimension(maxsymcrys) tv0symc
integer, dimension(3, 3, 48) symlat
integer, dimension(maxsymcrys) lsplsymc
real(8), dimension(:,:), allocatable vhc
integer, dimension(:,:), allocatable ivh
integer, dimension(2, 3) inthv
real(8), dimension(:), allocatable hc
integer, dimension(3) ngridh
integer, dimension(:), allocatable mulh
pure subroutine sortidx(n, x, idx)