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

Go to the source code of this file.

Functions/Subroutines

subroutine scoor431 (x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)

Function/Subroutine Documentation

◆ scoor431()

subroutine scoor431 ( x1,
x2,
x3,
x4,
x5,
x6,
x7,
x8,
y1,
y2,
y3,
y4,
y5,
y6,
y7,
y8,
z1,
z2,
z3,
z4,
z5,
z6,
z7,
z8,
e1x,
e2x,
e3x,
e1y,
e2y,
e3y,
e1z,
e2z,
e3z )

Definition at line 29 of file scoor431.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 . x1, x2, x3, x4, x5, x6, x7, x8,
44 . y1, y2, y3, y4, y5, y6, y7, y8,
45 . z1, z2, z3, z4, z5, z6, z7, z8,
46 . e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
51 . p1x,p2x,p3x, p4x,p1y,p2y,p3y,p4y,p1z,p2z,p3z, p4z,
52 . rx,ry,rz,sx,sy,sz, cc,c1,c2
53C-----------------------------------------------
54 p1x = x1+x5
55 p1y = y1+y5
56 p1z = z1+z5
57 p2x = x2+x6
58 p2y = y2+y6
59 p2z = z2+z6
60 p3x = x3+x7
61 p3y = y3+y7
62 p3z = z3+z7
63 p4x = x4+x8
64 p4y = y4+y8
65 p4z = z4+z8
66C
67 rx = p2x + p3x - p1x - p4x
68 ry = p2y + p3y - p1y - p4y
69 rz = p2z + p3z - p1z - p4z
70 sx = p3x + p4x - p1x - p2x
71 sy = p3y + p4y - p1y - p2y
72 sz = p3z + p4z - p1z - p2z
73C
74 e3x = ry * sz - rz * sy
75 e3y = rz * sx - rx * sz
76 e3z = rx * sy - ry * sx
77 cc = one / max(em20,sqrt(e3x*e3x + e3y*e3y + e3z*e3z))
78 e3x = e3x * cc
79 e3y = e3y * cc
80 e3z = e3z * cc
81C
82 c1 = rx*rx + ry*ry + rz*rz
83 c2 = sx*sx + sy*sy + sz*sz
84 IF (c1 /= zero) THEN
85 cc = sqrt(c2/c1)
86 e1x = rx*cc+(sy*e3z-sz*e3y)
87 e1y = ry*cc+(sz*e3x-sx*e3z)
88 e1z = rz*cc+(sx*e3y-sy*e3x)
89 ELSEIF (c2 /= zero) THEN
90 cc = sqrt(c1/c2)
91 e1x = rx+(sy*e3z-sz*e3y)*cc
92 e1y = ry+(sz*e3x-sx*e3z)*cc
93 e1z = rz+(sx*e3y-sy*e3x)*cc
94 END IF
95C
96 cc = sqrt(e1x*e1x + e1y*e1y + e1z*e1z)
97 IF (cc /= zero) cc = one / cc
98 e1x = e1x*cc
99 e1y = e1y*cc
100 e1z = e1z*cc
101 e2x = e3y * e1z - e3z * e1y
102 e2y = e3z * e1x - e3x * e1z
103 e2z = e3x * e1y - e3y * e1x
104C-----------
105 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21