9subroutine ggair_sp_1(rhoup,rhodn,grho,gup,gdn,g2up,g2dn,g3rho,g3up,g3dn)
39real(8),
intent(in) :: rhoup(ngtot),rhodn(ngtot)
40real(8),
intent(out) :: grho(ngtot),gup(ngtot),gdn(ngtot)
41real(8),
intent(out) :: g2up(ngtot),g2dn(ngtot)
42real(8),
intent(out) :: g3rho(ngtot),g3up(ngtot),g3dn(ngtot)
46real(8),
allocatable :: gvup(:,:),gvdn(:,:),rfir(:)
47complex(8),
allocatable :: zfft1(:),zfft2(:)
48allocate(gvup(ngtot,3),gvdn(ngtot,3),rfir(ngtot))
59 zfft2(ifg)=
vgc(i,ig)*
zi*zfft1(ifg)
66gup(:)=sqrt(gvup(:,1)**2+gvup(:,2)**2+gvup(:,3)**2)
71 zfft2(ifg)=-(
gc(ig)**2)*zfft1(ifg)
83 zfft2(ifg)=
vgc(i,ig)*
zi*zfft1(ifg)
86 g3up(:)=g3up(:)+gvup(:,i)*rfir(:)
97 zfft2(ifg)=
vgc(i,ig)*
zi*zfft1(ifg)
104gdn(:)=sqrt(gvdn(:,1)**2+gvdn(:,2)**2+gvdn(:,3)**2)
109 zfft2(ifg)=-(
gc(ig)**2)*zfft1(ifg)
121 zfft2(ifg)=
vgc(i,ig)*
zi*zfft1(ifg)
124 g3dn(:)=g3dn(:)+gvdn(:,i)*rfir(:)
130grho(:)=sqrt((gvup(:,1)+gvdn(:,1))**2 &
131 +(gvup(:,2)+gvdn(:,2))**2 &
132 +(gvup(:,3)+gvdn(:,3))**2)
139 zfft2(ifg)=
vgc(i,ig)*
zi*zfft1(ifg)
142 g3rho(:)=g3rho(:)+(gvup(:,i)+gvdn(:,i))*rfir(:)
144deallocate(gvup,gvdn,rfir,zfft1,zfft2)
subroutine ggair_sp_1(rhoup, rhodn, grho, gup, gdn, g2up, g2dn, g3rho, g3up, g3dn)
integer, dimension(3) ngridg
integer, dimension(:), allocatable igrzf
real(8), dimension(:,:), allocatable vgc
real(8), dimension(:), allocatable gc