SUBROUTINE fft6_g2r_green (f_g, f_r) ! 6-D fourier transform used for G(G,G'). ! which agrees with convention in FG's paper. USE io_files, ONLY : prefix, iunigk USE gwsigma, ONLY : ngmsig, nrsig, nr1sig, nr2sig, nr3sig, nlsig USE kinds, ONLY : DP USE cell_base, ONLY : omega, alat USE control_gw, ONLY : lgamma USE wvfct, ONLY : npw, npwx, igk USE qpoint, ONLY : xq, npwq, igkq, nksq, ikks, ikqs USE gsmooth, ONLY : nrxxs, nrx1s, nrx2s, nrx3s, nr1s, nr2s, nr3s, nls IMPLICIT NONE INTEGER :: ios INTEGER :: ig, igp, ir, irp !COMPLEX(DP) :: f_r (nrxxs,nrxxs) !COMPLEX(DP) :: aux(nrxxs) COMPLEX(DP) :: f_g(ngmsig,ngmsig) COMPLEX(DP) :: f_r (nrsig,nrsig) COMPLEX(DP) :: aux(nrsig) COMPLEX(DP) :: czero czero = (0.0d0, 0.0d0) f_r(:,:) = czero !do ig = 1, ngmsig do ig = 1, 51 aux(:) = czero ! do igp = 1, ngmsig do igp = 1, 51 ! aux(nlsig(igp)) = f_g(ig,igp) ! if( ((igkq(igp).lt.ngmsig) .and. (igkq(ig)).lt.ngmsig) & ! .and. ((igkq(igp).gt.0) .and. (igkq(ig)).gt.0)) then aux(nlsig(igkq(igp))) = f_g(ig,igp) ! endif enddo call cft3s (aux, nr1sig, nr2sig, nr3sig, nr1sig, nr2sig, nr3sig, +2) f_r(ig, 1:nrsig) = aux / omega enddo ! the conjg/conjg is to calculate sum_G f(G) exp(-iGr) ! following teh convention set in the paper ! [because the standard transform is sum_G f(G) exp(iGr) ] do irp = 1, nrsig aux = czero !do ig = 1, ngmsig do ig = 1, 51 ! aux(nlsig(ig)) = conjg( f_r(ig,irp) ) ! if( ((igkq(igp).lt.ngmsig) .and. (igkq(ig)).lt.ngmsig) & ! .and. ((igkq(igp).gt.0) .and. (igkq(ig)).gt.0)) then aux(nlsig(igkq(ig))) = conjg( f_r(ig,irp) ) ! endif enddo !NRSIG ! call cft3s (aux, nr1sig, nr2sig, nr3sig, nr1sig, nr2sig, nr3sig, +2) ! f_r(1:nrsig,irp) = conjg ( aux ) !NRXXS call cft3s (aux, nr1sig, nr2sig, nr3sig, nr1sig, nr2sig, nr3sig, +2) f_r(1:nrsig,irp) = conjg ( aux ) enddo END SUBROUTINE fft6_g2r_green