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

Go to the source code of this file.

Functions/Subroutines

subroutine rotbmr (vr, rby, dt)

Function/Subroutine Documentation

◆ rotbmr()

subroutine rotbmr ( vr,
rby,
dt )

Definition at line 34 of file rotbmr.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42C REAL
44 . dt
45C REAL
47 . vr(3), rby(9)
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51C REAL
53 . rx, ry, rz, rx2, ry2, rz2, r2, r, c, cm1, s, sz, cz, e11,
54 . e22, e12, e21, e13, e23, bl11, bl21, bl31, bl12, bl22, bl32,
55 . bn
56C-----------------------------------------------
57 rx = dt*vr(1)
58 ry = dt*vr(2)
59 rz = dt*vr(3)
60C
61 rx2 = rx*rx
62 ry2 = ry*ry
63 rz2 = rz*rz
64C
65 r2 = max(em10,rx2+ry2+rz2)
66 r = sqrt(r2)
67C
68 c = cos(r)
69 cm1 = (1-c)
70 c = c*r2
71 s = sin(r)*r
72 sz = rz*s
73 cz = rz*cm1
74C
75 e11 = rx2*cm1 + c
76 e22 = ry2*cm1 + c
77 e12 = rx*ry*cm1
78 e21 = e12 - sz
79 e12 = e12 + sz
80 e13 = rx*cz - ry*s
81 e23 = ry*cz + rx*s
82C
83 bl11 = rby(1)*e11 + rby(4)*e12 + rby(7)*e13
84 bl21 = rby(2)*e11 + rby(5)*e12 + rby(8)*e13
85 bl31 = rby(3)*e11 + rby(6)*e12 + rby(9)*e13
86C
87 bl12 = rby(1)*e21 + rby(4)*e22 + rby(7)*e23
88 bl22 = rby(2)*e21 + rby(5)*e22 + rby(8)*e23
89 bl32 = rby(3)*e21 + rby(6)*e22 + rby(9)*e23
90C
91 bn = sqrt(bl11*bl11+bl21*bl21+bl31*bl31)
92 bl11=bl11/bn
93 bl21=bl21/bn
94 bl31=bl31/bn
95 bn = sqrt(bl12*bl12+bl22*bl22+bl32*bl32)
96 bl12=bl12/bn
97 bl22=bl22/bn
98 bl32=bl32/bn
99C
100 rby(1) = bl11
101 rby(2) = bl21
102 rby(3) = bl31
103C
104 rby(4) = bl12
105 rby(5) = bl22
106 rby(6) = bl32
107C
108 rby(7) = bl21*bl32 - bl31*bl22
109 rby(8) = bl31*bl12 - bl11*bl32
110 rby(9) = bl11*bl22 - bl21*bl12
111C
112C---------------------------
113 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21