6 subroutine rotdmat(rspl,rspn,lmax,nspinor,ld,dmat1,dmat2)
9 real(8),
intent(in) :: rspl(3,3),rspn(3,3)
10 integer,
intent(in) :: lmax,nspinor,ld
11 complex(8),
intent(in) :: dmat1(ld,nspinor,ld,nspinor)
12 complex(8),
intent(inout) :: dmat2(ld,nspinor,ld,nspinor)
14 integer lds,ispn,jspn,p
15 integer lmmax,l,lm1,lm2,nm
16 real(8),
parameter :: eps=1.d-8
17 real(8) det,ang(3),angi(3)
19 complex(8),
parameter :: zzero=(0.d0,0.d0),
zone=(1.d0,0.d0)
20 complex(8) su2(2,2),a(2,2),b(2,2)
22 complex(8),
allocatable :: dm(:,:,:,:),c(:,:),d(:,:)
24 real(8),
external :: r3mdet
26 allocate(dm(ld,nspinor,ld,nspinor))
27 allocate(c(lmmax,lmmax),d(lmmax,lmmax))
43 call 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)
65 if (nspinor == 2)
then 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)
subroutine ylmrot(p, ang, lmax, ld, d)
subroutine rotaxang(eps, rot, det, v, th)
complex(8), parameter zone
pure subroutine z2mm(a, b, c)
pure subroutine z2mmct(a, b, c)
pure subroutine axangsu2(v, th, su2)
subroutine rotdmat(rspl, rspn, lmax, nspinor, ld, dmat1, dmat2)
subroutine roteuler(rot, ang)