OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6cortho3.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!|| s6cortho3 ../starter/source/elements/thickshell/solide6c/s6cortho3.F
25!||--- called by ------------------------------------------------------
26!|| s6ccoor3 ../starter/source/elements/thickshell/solide6c/s6ccoor3.F
27!||====================================================================
28 SUBROUTINE s6cortho3(
29 . X1 ,X2 ,X3 ,X4 ,X5 ,X6 ,
30 . Y1 ,Y2 ,Y3 ,Y4 ,Y5 ,Y6 ,
31 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,
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(*),
48 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*),
49 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*),
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 . X14(MVSIZ) ,Y14(MVSIZ) , Z14(MVSIZ) ,
63 . DET,C1,C2
64C-----------------------------------------------
65 DO 10 i=lft,llt
66 x14(i)=x1(i)+x4(i)
67 y14(i)=y1(i)+y4(i)
68 z14(i)=z1(i)+z4(i)
69 10 CONTINUE
70 DO 20 i=lft,llt
71 tx(i)=x2(i)+x5(i)-x14(i)
72 ty(i)=y2(i)+y5(i)-y14(i)
73 tz(i)=z2(i)+z5(i)-z14(i)
74 20 CONTINUE
75 DO 30 i=lft,llt
76 rx(i)=x3(i)+x6(i)-x14(i)
77 ry(i)=y3(i)+y6(i)-y14(i)
78 rz(i)=z3(i)+z6(i)-z14(i)
79 30 CONTINUE
80 DO i=lft,llt
81 sx(i)= (x4(i)+x5(i)+x6(i)-x1(i)-x2(i)-x3(i))*third
82 sy(i)= (y4(i)+y5(i)+y6(i)-y1(i)-y2(i)-y3(i))*third
83 sz(i)= (z4(i)+z5(i)+z6(i)-z1(i)-z2(i)-z3(i))*third
84 ENDDO
85c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 DO 100 i=lft,llt
87C
88 e3x(i) = ty(i) * rz(i) - tz(i) * ry(i)
89 e3y(i) = tz(i) * rx(i) - tx(i) * rz(i)
90 e3z(i) = tx(i) * ry(i) - ty(i) * rx(i)
91C
92 det = sqrt(e3x(i)*e3x(i) + e3y(i)*e3y(i) + e3z(i)*e3z(i))
93 IF ( det/=zero) det = one / det
94 e3x(i) = e3x(i) * det
95 e3y(i) = e3y(i) * det
96 e3z(i) = e3z(i) * det
97C
98 c1=sqrt(tx(i)*tx(i)+ty(i)*ty(i)+tz(i)*tz(i))
99 c2=sqrt(rx(i)*rx(i)+ry(i)*ry(i)+rz(i)*rz(i))
100 e1x(i)=tx(i)*c2 +(ry(i) * e3z(i) - rz(i) * e3y(i))*c1
101 e1y(i)=ty(i)*c2 +(rz(i) * e3x(i) - rx(i) * e3z(i))*c1
102 e1z(i)=tz(i)*c2 +(rx(i) * e3y(i) - ry(i) * e3x(i))*c1
103 det = sqrt(e1x(i)*e1x(i) + e1y(i)*e1y(i) + e1z(i)*e1z(i))
104 IF ( det/=zero) det = one / det
105 e1x(i) = e1x(i)*det
106 e1y(i) = e1y(i)*det
107 e1z(i) = e1z(i)*det
108C
109 e2x(i) = e3y(i) * e1z(i) - e3z(i) * e1y(i)
110 e2y(i) = e3z(i) * e1x(i) - e3x(i) * e1z(i)
111 e2z(i) = e3x(i) * e1y(i) - e3y(i) * e1x(i)
112 100 CONTINUE
113c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 RETURN
115 END
#define my_real
Definition cppsort.cpp:32
subroutine s6cortho3(x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition s6cortho3.F:34