9 subroutine ggamt_sp_2b(is,np,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, &
10 dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud)
23 integer,
intent(in) :: is,np
24 real(8),
intent(in) :: g2up(np),g2dn(np)
25 real(8),
intent(in) :: gvup(np,3),gvdn(np,3)
26 real(8),
intent(inout) :: vxup(np),vxdn(np)
27 real(8),
intent(inout) :: vcup(np),vcdn(np)
28 real(8),
intent(in) :: dxdgu2(np),dxdgd2(np),dxdgud(np)
29 real(8),
intent(in) :: dcdgu2(np),dcdgd2(np),dcdgud(np)
33 real(8) rfmt1(np),rfmt2(np),grfmt(np,3)
40 call rfsht(nr,nri,dxdgu2,rfmt1)
42 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
46 call rbsht(nr,nri,grfmt(:,i),rfmt2)
47 rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvup(1:np,i)
49 vxup(1:np)=vxup(1:np)-2.d0*(rfmt1(1:np)+dxdgu2(1:np)*g2up(1:np)) &
50 -dxdgud(1:np)*g2dn(1:np)
52 call rfsht(nr,nri,dxdgd2,rfmt1)
54 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
58 call rbsht(nr,nri,grfmt(:,i),rfmt2)
59 rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvdn(1:np,i)
61 vxdn(1:np)=vxdn(1:np)-2.d0*(rfmt1(1:np)+dxdgd2(1:np)*g2dn(1:np)) &
62 -dxdgud(1:np)*g2up(1:np)
64 call rfsht(nr,nri,dxdgud,rfmt1)
66 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
69 call rbsht(nr,nri,grfmt(:,i),rfmt1)
70 vxup(1:np)=vxup(1:np)-rfmt1(1:np)*gvdn(1:np,i)
71 vxdn(1:np)=vxdn(1:np)-rfmt1(1:np)*gvup(1:np,i)
77 call rfsht(nr,nri,dcdgu2,rfmt1)
79 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
83 call rbsht(nr,nri,grfmt(:,i),rfmt2)
84 rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvup(1:np,i)
86 vcup(1:np)=vcup(1:np)-2.d0*(rfmt1(1:np)+dcdgu2(1:np)*g2up(1:np)) &
87 -dcdgud(1:np)*g2dn(1:np)
89 call rfsht(nr,nri,dcdgd2,rfmt1)
91 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
95 call rbsht(nr,nri,grfmt(:,i),rfmt2)
96 rfmt1(1:np)=rfmt1(1:np)+rfmt2(1:np)*gvdn(1:np,i)
98 vcdn(1:np)=vcdn(1:np)-2.d0*(rfmt1(1:np)+dcdgd2(1:np)*g2dn(1:np)) &
99 -dcdgud(1:np)*g2up(1:np)
101 call rfsht(nr,nri,dcdgud,rfmt1)
103 call gradrfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),rfmt1,np,grfmt)
106 call rbsht(nr,nri,grfmt(:,i),rfmt1)
107 vcup(1:np)=vcup(1:np)-rfmt1(1:np)*gvdn(1:np,i)
108 vcdn(1:np)=vcdn(1:np)-rfmt1(1:np)*gvup(1:np,i)
real(8), dimension(:,:,:), allocatable rlmt
subroutine rbsht(nr, nri, rfmt1, rfmt2)
subroutine ggamt_sp_2b(is, np, g2up, g2dn, gvup, gvdn, vxup, vxdn, vcup, vcdn, dxdgu2, dxdgd2, dxdgud, dcdgu2, dcdgd2, dcdgud)
subroutine gradrfmt(nr, nri, ri, wcr, rfmt, ld, grfmt)
subroutine rfsht(nr, nri, rfmt1, rfmt2)
real(8), dimension(:,:,:), allocatable wcrmt
integer, dimension(maxspecies) nrmti
integer, dimension(maxspecies) nrmt