27 integer ig,n1,i1,i2,i3,j1,j2,j3
28 real(8) v1(3),v2(3),v3(3)
30 integer,
allocatable :: idx(:),ivg_(:,:)
31 real(8),
allocatable :: vgc_(:,:),gc_(:)
45 v1(1:3)=dble(i1)*
bvec(1:3,1)
47 v2(1:3)=v1(1:3)+dble(i2)*
bvec(1:3,2)
49 v3(1:3)=v2(1:3)+dble(i3)*
bvec(1:3,3)
52 ivg_(1,ig)=i1; ivg_(2,ig)=i2; ivg_(3,ig)=i3
56 gc_(ig)=sqrt(v3(1)**2+v3(2)**2+v3(3)**2)
63 if (
allocated(
ivg))
deallocate(
ivg)
65 if (
allocated(
vgc))
deallocate(
vgc)
67 if (
allocated(
gc))
deallocate(
gc)
73 deallocate(idx,ivg_,vgc_,gc_)
96 j1=merge(i1,
ngridg(1)+i1,i1 >= 0)
97 j2=merge(i2,
ngridg(2)+i2,i2 >= 0)
98 j3=merge(i3,
ngridg(3)+i3,i3 >= 0)
integer, dimension(3) ngridg
integer, dimension(:,:,:), allocatable ivgig
real(8), dimension(:,:), allocatable vgc
integer, dimension(:), allocatable igrzf
integer, dimension(:), allocatable igfft
subroutine gridsize(avec, gmaxvr, npfft, ngridg, ngtot, intgv)
real(8), dimension(3, 3) avec
pure subroutine sortidx(n, x, idx)
real(8), dimension(3, 3) bvec
integer, dimension(:,:), allocatable ivg
integer, dimension(2, 3) intgv
real(8), dimension(:), allocatable gc