53 real(8),
intent(in) :: rot(3,3)
54 real(8),
intent(out) :: ang(3)
56 real(8),
parameter :: eps=1.d-8
57 real(8),
parameter ::
pi=3.1415926535897932385d0
58 if ((abs(rot(3,1)) > eps).or.(abs(rot(3,2)) > eps))
then 59 ang(1)=atan2(rot(3,2),rot(3,1))
60 if (abs(rot(3,1)) > abs(rot(3,2)))
then 61 ang(2)=atan2(rot(3,1)/cos(ang(1)),rot(3,3))
63 ang(2)=atan2(rot(3,2)/sin(ang(1)),rot(3,3))
65 ang(3)=atan2(rot(2,3),-rot(1,3))
67 ang(1)=atan2(rot(1,2),rot(1,1))
68 if (rot(3,3) > 0.d0)
then pure subroutine roteuler(rot, ang)