9subroutine ggamt_sp_2b(is,np,g2up,g2dn,gvup,gvdn,vxup,vxdn,vcup,vcdn,dxdgu2, &
10 dxdgd2,dxdgud,dcdgu2,dcdgd2,dcdgud)
23integer,
intent(in) :: is,np
24real(8),
intent(in) :: g2up(np),g2dn(np)
25real(8),
intent(in) :: gvup(np,3),gvdn(np,3)
26real(8),
intent(inout) :: vxup(np),vxdn(np)
27real(8),
intent(inout) :: vcup(np),vcdn(np)
28real(8),
intent(in) :: dxdgu2(np),dxdgd2(np),dxdgud(np)
29real(8),
intent(in) :: dcdgu2(np),dcdgd2(np),dcdgud(np)
33real(8) rfmt1(np),rfmt2(np),grfmt(np,3)
40call rfsht(nr,nri,dxdgu2,rfmt1)
42call 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)
49vxup(1:np)=vxup(1:np)-2.d0*(rfmt1(1:np)+dxdgu2(1:np)*g2up(1:np)) &
50 -dxdgud(1:np)*g2dn(1:np)
52call rfsht(nr,nri,dxdgd2,rfmt1)
54call 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)
61vxdn(1:np)=vxdn(1:np)-2.d0*(rfmt1(1:np)+dxdgd2(1:np)*g2dn(1:np)) &
62 -dxdgud(1:np)*g2up(1:np)
64call rfsht(nr,nri,dxdgud,rfmt1)
66call 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)
77call rfsht(nr,nri,dcdgu2,rfmt1)
79call 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)
86vcup(1:np)=vcup(1:np)-2.d0*(rfmt1(1:np)+dcdgu2(1:np)*g2up(1:np)) &
87 -dcdgud(1:np)*g2dn(1:np)
89call rfsht(nr,nri,dcdgd2,rfmt1)
91call 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)
98vcdn(1:np)=vcdn(1:np)-2.d0*(rfmt1(1:np)+dcdgd2(1:np)*g2dn(1:np)) &
99 -dcdgud(1:np)*g2up(1:np)
101call rfsht(nr,nri,dcdgud,rfmt1)
103call 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)
subroutine ggamt_sp_2b(is, np, g2up, g2dn, gvup, gvdn, vxup, vxdn, vcup, vcdn, dxdgu2, dxdgd2, dxdgud, dcdgu2, dcdgd2, dcdgud)
integer, dimension(maxspecies) nrmti
real(8), dimension(:,:,:), allocatable wcrmt
integer, dimension(maxspecies) nrmt
real(8), dimension(:,:,:), allocatable rlmt