OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
euler_mrot.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine euler_mrot (rx, ry, rz, rot)

Function/Subroutine Documentation

◆ euler_mrot()

subroutine euler_mrot ( rx,
ry,
rz,
rot )

Definition at line 33 of file euler_mrot.F.

34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41C REAL
43 . rx,ry,rz, rot(9)
44C-----------------------------------------------
45C L o c a l V a r i a b l e s
46C-----------------------------------------------
47C REAL
49 . rx2, ry2, rz2, r2, r, c, cm1, s, sx, sy, sz, cz,
50 . e11, e22, e33, e12, e13, e31, e32, e21, e23
51C=======================================================================
52 rx2 = rx*rx
53 ry2 = ry*ry
54 rz2 = rz*rz
55 r2 = max(em20,rx2+ry2+rz2)
56 r = sqrt(r2)
57C
58 c = cos(r)
59 s = sin(r)
60 cm1 = one - c
61C
62 rx = rx / r
63 ry = ry / r
64 rz = rz / r
65 rx2 = rx2 / r2
66 ry2 = ry2 / r2
67 rz2 = rz2 / r2
68C
69 sx = s*rx
70 sy = s*ry
71 sz = s*rz
72 cz = rz*cm1
73C-----
74 e11 = rx2*cm1 + c
75 e22 = ry2*cm1 + c
76 e33 = rz2*cm1 + c
77C
78 e12 = rx*ry*cm1
79 e21 = e12 - sz
80 e12 = e12 + sz
81C
82 e13 = rx*cz
83 e31 = e13 + sy
84 e13 = e13 - sy
85C
86 e23 = ry *cz
87 e32 = e23 - sx
88 e23 = e23 + sx
89C-----
90 rot(1) = e11
91 rot(2) = e12
92 rot(3) = e13
93 rot(4) = e21
94 rot(5) = e22
95 rot(6) = e23
96 rot(7) = e31
97 rot(8) = e32
98 rot(9) = e33
99C---
100 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21