6pure subroutine dhmlalo(is,ias,ngp,ngpq,apwalm,apwalmq,dapwalm,dapwalmq,ld,dh)
11integer,
intent(in) :: is,ias,ngp,ngpq
16integer,
intent(in) :: ld
17complex(8),
intent(inout) :: dh(ld,*)
21integer lm1,lm3,lma,lmb
26 do lm1=l1**2+1,(l1+1)**2
31 if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1;
end if
32 do lm3=l3**2+1,(l3+1)**2
36 lma=l2**2+1; lmb=lma+2*l2
37 z1=z1+sum(
gntyyy(lma:lmb,lm3,lm1)*
dhloa(lma:lmb,io,l3,ilo,ias))
39 if (abs(z1%re)+abs(z1%im) > 1.d-12)
then
41 dh(i,j0)=dh(i,j0)+conjg(z1*apwalmq(i,io,lm3))
44 dh(i0,j)=dh(i0,j)+z1*apwalm(j,io,lm3)
50 if (ias ==
iasph)
then
52 if (mod(l1+l3,2) == 0) then; l0=0; else; l0=1;
end if
53 do lm3=l3**2+1,(l3+1)**2
57 lma=l2**2+1; lmb=lma+2*l2
58 z1=z1+sum(
gntyry(lma:lmb,lm3,lm1)*
hloa(lma:lmb,io,l3,ilo,ias))
60 if (abs(z1%re)+abs(z1%im) > 1.d-12)
then
62 dh(i,j0)=dh(i,j0)+conjg(z1*dapwalmq(i,io,lm3))
65 dh(i0,j)=dh(i0,j)+z1*dapwalm(j,io,lm3)
pure subroutine dhmlalo(is, ias, ngp, ngpq, apwalm, apwalmq, dapwalm, dapwalmq, ld, dh)
integer, dimension(:,:,:), allocatable idxlo
integer, dimension(0:maxlapw, maxspecies) apword
complex(8), dimension(:,:,:), allocatable gntyry
integer, dimension(maxspecies) nlorb
real(8), dimension(:,:,:,:,:), allocatable hloa
integer, dimension(maxlorb, maxspecies) lorbl