OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scortho3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| scortho3 ../starter/source/elements/thickshell/solidec/scortho3.F
25!||--- called by ------------------------------------------------------
26!|| sccoor3 ../starter/source/elements/thickshell/solidec/sccoor3.F
27!||====================================================================
28 SUBROUTINE scortho3(
29 . X1 ,X2 ,X3 ,X4 ,X5 ,X6 ,X7 ,X8,
30 . Y1 ,Y2 ,Y3 ,Y4 ,Y5 ,Y6 ,Y7 ,Y8,
31 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,Z7 ,Z8,
32 . RX ,RY ,RZ ,SX ,SY ,SZ ,TX ,TY ,TZ ,
33 . E1X ,E1Y ,E1Z ,E2X ,E2Y ,E2Z ,E3X ,E3Y ,E3Z )
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C G l o b a l P a r a m e t e r s
40C-----------------------------------------------
41#include "mvsiz_p.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45C REAL
47 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
48 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
49 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
50 . rx(*) ,ry(*) ,rz(*) ,sx(*) ,sy(*) ,sz(*) ,tx(*) ,ty(*) ,tz(*),
51 . e1x(*),e1y(*),e1z(*),e2x(*),e2y(*),e2z(*),e3x(*),e3y(*),e3z(*)
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "vect01_c.inc"
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I
60C REAL
61 my_real
62 . X17(MVSIZ) , X28(MVSIZ) , X35(MVSIZ) , X46(MVSIZ),
63 . Y17(MVSIZ) , Y28(MVSIZ) , Y35(MVSIZ) , Y46(MVSIZ),
64 . z17(mvsiz) , z28(mvsiz) , z35(mvsiz) , z46(mvsiz),
65 . a17(mvsiz) , a28(mvsiz) ,
66 . b17(mvsiz) , b28(mvsiz) ,
67 . c17(mvsiz) , c28(mvsiz) ,
68 . det,c1,c2
69C-----------------------------------------------
70 DO 10 i=lft,llt
71 x17(i)=x7(i)-x1(i)
72 x28(i)=x8(i)-x2(i)
73 x35(i)=x5(i)-x3(i)
74 x46(i)=x6(i)-x4(i)
75 y17(i)=y7(i)-y1(i)
76 y28(i)=y8(i)-y2(i)
77 y35(i)=y5(i)-y3(i)
78 y46(i)=y6(i)-y4(i)
79 z17(i)=z7(i)-z1(i)
80 z28(i)=z8(i)-z2(i)
81 z35(i)=z5(i)-z3(i)
82 z46(i)=z6(i)-z4(i)
83 10 CONTINUE
84 DO 20 i=lft,llt
85 rx(i)=x17(i)+x28(i)-x35(i)-x46(i)
86 ry(i)=y17(i)+y28(i)-y35(i)-y46(i)
87 rz(i)=z17(i)+z28(i)-z35(i)-z46(i)
88 a17(i)=x17(i)+x46(i)
89 a28(i)=x28(i)+x35(i)
90 b17(i)=y17(i)+y46(i)
91 b28(i)=y28(i)+y35(i)
92 c17(i)=z17(i)+z46(i)
93 c28(i)=z28(i)+z35(i)
94 20 CONTINUE
95 DO 30 i=lft,llt
96 sx(i)=a17(i)+a28(i)
97 sy(i)=b17(i)+b28(i)
98 sz(i)=c17(i)+c28(i)
99 tx(i)=a17(i)-a28(i)
100 ty(i)=b17(i)-b28(i)
101 tz(i)=c17(i)-c28(i)
102 30 CONTINUE
103c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104 DO 100 i=lft,llt
105C
106 e3x(i) = ty(i) * rz(i) - tz(i) * ry(i)
107 e3y(i) = tz(i) * rx(i) - tx(i) * rz(i)
108 e3z(i) = tx(i) * ry(i) - ty(i) * rx(i)
109C
110 det = sqrt(e3x(i)*e3x(i) + e3y(i)*e3y(i) + e3z(i)*e3z(i))
111 IF ( det/=zero) det = one / det
112 e3x(i) = e3x(i) * det
113 e3y(i) = e3y(i) * det
114 e3z(i) = e3z(i) * det
115C
116 c1=sqrt(tx(i)*tx(i)+ty(i)*ty(i)+tz(i)*tz(i))
117 c2=sqrt(rx(i)*rx(i)+ry(i)*ry(i)+rz(i)*rz(i))
118 e1x(i)=tx(i)*c2 +(ry(i) * e3z(i) - rz(i) * e3y(i))*c1
119 e1y(i)=ty(i)*c2 +(rz(i) * e3x(i) - rx(i) * e3z(i))*c1
120 e1z(i)=tz(i)*c2 +(rx(i) * e3y(i) - ry(i) * e3x(i))*c1
121 det = sqrt(e1x(i)*e1x(i) + e1y(i)*e1y(i) + e1z(i)*e1z(i))
122 IF ( det/=zero) det = one / det
123 e1x(i) = e1x(i)*det
124 e1y(i) = e1y(i)*det
125 e1z(i) = e1z(i)*det
126C
127 e2x(i) = e3y(i) * e1z(i) - e3z(i) * e1y(i)
128 e2y(i) = e3z(i) * e1x(i) - e3x(i) * e1z(i)
129 e2z(i) = e3x(i) * e1y(i) - e3y(i) * e1x(i)
130 100 CONTINUE
131c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
132 RETURN
133 END
#define my_real
Definition cppsort.cpp:32
subroutine scortho3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition scortho3.F:34