9 subroutine symrfir(ngridg_,ngtot_,ngvec_,nfgrz_,igfft_,igrzf_,rfir)
33 integer,
intent(in) :: ngridg_(3),ngtot_,ngvec_,nfgrz_
34 integer,
intent(in) :: igfft_(ngvec_),igrzf_(nfgrz_)
35 real(8),
intent(inout) :: rfir(ngtot_)
38 integer isym,lspl,sym(3,3)
40 integer i1,i2,i3,j1,j2,j3
43 complex(8),
allocatable :: zfft1(:),zfft2(:)
44 allocate(zfft1(ngtot_),zfft2(nfgrz_))
46 zfft1(1:ngtot_)=rfir(1:ngtot_)
47 call zfftifc(3,ngridg_,-1,zfft1)
61 sym(1:3,1:3)=
symlat(1:3,1:3,lspl)
64 if (ig > ngvec_) cycle
70 j1=sym(1,1)*i1+sym(2,1)*i2+sym(3,1)*i3
71 j2=sym(1,2)*i1+sym(2,2)*i2+sym(3,2)*i3
72 j3=sym(1,3)*i1+sym(2,3)*i2+sym(3,3)*i3
79 zfft2(ifg)=zfft2(ifg)+zfft1(jfg)
83 zfft2(ifg)=zfft2(ifg)+zfft1(jfg)*cmplx(cos(t1),-sin(t1),8)
88 call rzfftifc(3,ngridg_,1,rfir,zfft2)
90 rfir(1:ngtot_)=t1*rfir(1:ngtot_)
91 deallocate(zfft1,zfft2)
integer, dimension(:,:,:), allocatable ivgig
subroutine symrfir(ngridg_, ngtot_, ngvec_, nfgrz_, igfft_, igrzf_, rfir)
integer, dimension(3, 3, 48) symlat
logical, dimension(maxsymcrys) tv0symc
real(8), dimension(:,:), allocatable vgc
subroutine zfftifc(nd, n, sgn, z)
integer, dimension(maxsymcrys) lsplsymc
integer, dimension(:,:), allocatable ivg
subroutine rzfftifc(nd, n, sgn, r, z)
real(8), dimension(3, maxsymcrys) vtcsymc