OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
suderi3.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!|| suderi3 ../starter/source/elements/elbuf_init/suderi3.F
25!||--- called by ------------------------------------------------------
26!|| suinit3 ../starter/source/elements/elbuf_init/suinit3.F
27!||====================================================================
28 SUBROUTINE suderi3(NEL ,VOL ,
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)
32C------------------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C G l o b a l P a r a m e t e r s
38C-----------------------------------------------
39#include "mvsiz_p.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER NEL
44 my_real
45 . VOL(*),
46 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*),
47 . x7(*), x8(*), y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*),
48 . y8(*), z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*)
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I,J
53
54 DOUBLE PRECISION
55 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz),
56 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
57 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
58 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
59 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
60 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz)
61C REAL
62 my_real
63 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz), jac4(mvsiz), jac5(mvsiz), jac6(mvsiz),
64 . jac7(mvsiz), jac8(mvsiz) , jac9(mvsiz),
65 . a17(mvsiz) , a28(mvsiz) ,
66 . b17(mvsiz) , b28(mvsiz) ,
67 . c17(mvsiz) , c28(mvsiz)
68 my_real
69 . x17(mvsiz), x28(mvsiz), x35(mvsiz), x46(mvsiz),
70 . y17(mvsiz), y28(mvsiz), y35(mvsiz), y46(mvsiz),
71 . z17(mvsiz), z28(mvsiz), z35(mvsiz), z46(mvsiz),
72 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz)
73C=======================================================================
74 DO i=1,nel
75 xd1(i)=x1(i)
76 xd2(i)=x2(i)
77 xd3(i)=x3(i)
78 xd4(i)=x4(i)
79 xd5(i)=x5(i)
80 xd6(i)=x6(i)
81 xd7(i)=x7(i)
82 xd8(i)=x8(i)
83 yd1(i)=y1(i)
84 yd2(i)=y2(i)
85 yd3(i)=y3(i)
86 yd4(i)=y4(i)
87 yd5(i)=y5(i)
88 yd6(i)=y6(i)
89 yd7(i)=y7(i)
90 yd8(i)=y8(i)
91 zd1(i)=z1(i)
92 zd2(i)=z2(i)
93 zd3(i)=z3(i)
94 zd4(i)=z4(i)
95 zd5(i)=z5(i)
96 zd6(i)=z6(i)
97 zd7(i)=z7(i)
98 zd8(i)=z8(i)
99 ENDDO
100
101 DO i=1,nel
102 x17(i)=xd7(i)-xd1(i)
103 x28(i)=xd8(i)-xd2(i)
104 x35(i)=xd5(i)-xd3(i)
105 x46(i)=xd6(i)-xd4(i)
106 y17(i)=yd7(i)-yd1(i)
107 y28(i)=yd8(i)-yd2(i)
108 y35(i)=yd5(i)-yd3(i)
109 y46(i)=yd6(i)-yd4(i)
110 z17(i)=zd7(i)-zd1(i)
111 z28(i)=zd8(i)-zd2(i)
112 z35(i)=zd5(i)-zd3(i)
113 z46(i)=zd6(i)-zd4(i)
114 ENDDO
115C
116 DO i=1,nel
117 jac1(i)=x17(i)+x28(i)-x35(i)-x46(i)
118 jac2(i)=y17(i)+y28(i)-y35(i)-y46(i)
119 jac3(i)=z17(i)+z28(i)-z35(i)-z46(i)
120 a17(i)=x17(i)+x46(i)
121 a28(i)=x28(i)+x35(i)
122 b17(i)=y17(i)+y46(i)
123 b28(i)=y28(i)+y35(i)
124 c17(i)=z17(i)+z46(i)
125 c28(i)=z28(i)+z35(i)
126 ENDDO
127
128 DO i=1,nel
129 jac4(i)=a17(i)+a28(i)
130 jac5(i)=b17(i)+b28(i)
131 jac6(i)=c17(i)+c28(i)
132 jac7(i)=a17(i)-a28(i)
133 jac8(i)=b17(i)-b28(i)
134 jac9(i)=c17(i)-c28(i)
135 ENDDO
136C
137 DO i=1,nel
138 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
139 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
140 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
141 ENDDO
142C
143 DO i=1,nel
144 vol(i)=one_over_64*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
145 ENDDO
146C-----------
147 RETURN
148 END
subroutine suderi3(nel, vol, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
Definition suderi3.F:32