28subroutine rotrflm(rot,lmax,n,ld,rflm1,rflm2)
51real(8),
intent(in) :: rot(3,3)
52integer,
intent(in) :: lmax,n,ld
53real(8),
intent(in) :: rflm1(ld,*)
54real(8),
intent(out) :: rflm2(ld,*)
57real(8) det,ang(3),angi(3)
62det=rot(1,1)*(rot(2,2)*rot(3,3)-rot(3,2)*rot(2,3)) &
63 +rot(2,1)*(rot(3,2)*rot(1,3)-rot(1,2)*rot(3,3)) &
64 +rot(3,1)*(rot(1,2)*rot(2,3)-rot(2,2)*rot(1,3))
78call rlmrot(p,angi,lmax,ld,d)
83 call dgemm(
'N',
'N',nm,n,nm,1.d0,d(lm,lm),ld,rflm1(lm,1),ld,0.d0,rflm2(lm,1), &
130integer,
intent(in) :: p
131real(8),
intent(in) :: ang(3)
132integer,
intent(in) :: lmax,ld
133real(8),
intent(out) :: d(ld,*)
135integer l,m1,m2,lm0,lm1,lm2
136real(8),
parameter :: sqtwo=1.4142135623730950488d0
137real(8) s1,s2,t1,t2,t3,t4,t5,t6,t7,t8
139integer lmi(-lmax:lmax)
140real(8) ca(lmax),sa(lmax),cg(lmax),sg(lmax),dy(ld,ld)
144 ca(m1)=cos(m1*ang(1)); sa(m1)=sin(m1*ang(1))
145 cg(m1)=cos(m1*ang(3)); sg(m1)=sin(m1*ang(3))
154 d(lm0,lm0)=dy(lm0,lm0)
156 if (mod(m1,2) == 0)
then
161 t1=sqtwo*dy(lm0,lmi(m1))
162 t2=sqtwo*dy(lmi(m1),lm0)
163 d(lmi(m1),lm0)=s1*t1*ca(m1)
164 d(lm0,lmi(m1))=s1*t2*cg(m1)
165 d(lmi(-m1),lm0)=-t1*sa(m1)
166 d(lm0,lmi(-m1))=t2*sg(m1)
168 if (mod(m2,2) == 0)
then
177 t5=dy(lmi(-m1),lmi(-m2))
178 t6=s1*dy(lmi(m1),lmi(-m2))
181 d(lmi(m1),lmi(m2))=s1*s2*(t1*t7-t2*t8)
182 d(lmi(m1),lmi(-m2))=s1*(t3*t8+t4*t7)
183 d(lmi(-m1),lmi(m2))=-s2*(t3*t7+t4*t8)
184 d(lmi(-m1),lmi(-m2))=t1*t8-t2*t7
193 d(lm1:lm2,lm1:lm2)=-d(lm1:lm2,lm1:lm2)