6subroutine rotdmat(rspl,rspn,lmax,nspinor,ld,dmat1,dmat2)
9real(8),
intent(in) :: rspl(3,3),rspn(3,3)
10integer,
intent(in) :: lmax,nspinor,ld
11complex(8),
intent(in) :: dmat1(ld,nspinor,ld,nspinor)
12complex(8),
intent(inout) :: dmat2(ld,nspinor,ld,nspinor)
14integer lds,ispn,jspn,p
15integer lmmax,l,lm1,lm2,nm
16real(8),
parameter :: eps=1.d-8
17real(8) det,ang(3),angi(3)
19complex(8),
parameter :: zzero=(0.d0,0.d0),zone=(1.d0,0.d0)
20complex(8) su2(2,2),a(2,2),b(2,2)
22complex(8),
allocatable :: dm(:,:,:,:),c(:,:),d(:,:)
24real(8),
external :: r3mdet
26allocate(dm(ld,nspinor,ld,nspinor))
27allocate(c(lmmax,lmmax),d(lmmax,lmmax))
43call ylmrot(p,angi,lmax,lmmax,d)
51 call zgemm(
'N',
'N',nm,lmmax,nm,zone,d(lm1,lm1),lmmax, &
52 dmat1(lm1,ispn,1,jspn),lds,zzero,c(lm1,1),lmmax)
58 call zgemm(
'N',
'C',lmmax,nm,nm,zone,c(1,lm1),lmmax,d(lm1,lm1),lmmax, &
59 zzero,dm(1,ispn,lm1,jspn),lds)
73 a(:,:)=dm(lm1,:,lm2,:)
76 dmat2(lm1,:,lm2,:)=dmat2(lm1,:,lm2,:)+a(:,:)
80 dmat2(1:lmmax,1,1:lmmax,1)=dmat2(1:lmmax,1,1:lmmax,1)+dm(1:lmmax,1,1:lmmax,1)