28integer i1,i2,i3,j1,j2,j3
29real(8) v1(3),v2(3),v3(3)
31integer,
allocatable :: idx(:),ivg_(:,:)
32real(8),
allocatable :: vgc_(:,:),gc_(:)
46 v1(1:3)=dble(i1)*
bvec(1:3,1)
48 v2(1:3)=v1(1:3)+dble(i2)*
bvec(1:3,2)
50 v3(1:3)=v2(1:3)+dble(i3)*
bvec(1:3,3)
53 ivg_(1,ig)=i1; ivg_(2,ig)=i2; ivg_(3,ig)=i3
57 gc_(ig)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2)
73if (
allocated(
ivg))
deallocate(
ivg)
75if (
allocated(
vgc))
deallocate(
vgc)
77if (
allocated(
gc))
deallocate(
gc)
82 ivg(1:3,ig)=ivg_(1:3,jg)
83 vgc(1:3,ig)=vgc_(1:3,jg)
86deallocate(idx,ivg_,vgc_,gc_)
120 ifg=j3*
ngridg(2)*n1+j2*n1+j1+1
subroutine gridsize(avec, gmaxvr, npfft, ngridg, ngtot, intgv)
integer, dimension(2, 3) intgv
integer, dimension(3) ngridg
real(8), dimension(3, 3) bvec
integer, dimension(:), allocatable igrzf
real(8), dimension(3, 3) avec
integer, dimension(:), allocatable igfft
integer, dimension(:,:), allocatable ivg
real(8), dimension(:,:), allocatable vgc
real(8), dimension(:), allocatable gc
integer, dimension(:,:,:), allocatable ivgig
pure subroutine sortidx(n, x, idx)