OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sccoor3.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!|| sccoor3 ../starter/source/elements/thickshell/solidec/sccoor3.F
25!||--- called by ------------------------------------------------------
26!|| scinit3 ../starter/source/elements/thickshell/solidec/scinit3.F
27!||--- calls -----------------------------------------------------
28!|| checkvolume_8n ../starter/source/elements/solid/solide/checksvolume.F
29!|| mod_close ../starter/source/elements/solid/solide/mod_close.F
30!|| scortho3 ../starter/source/elements/thickshell/solidec/scortho3.F
31!||--- uses -----------------------------------------------------
32!|| message_mod ../starter/share/message_module/message_mod.F
33!||====================================================================
34 SUBROUTINE sccoor3(
35 . X ,IXS ,GEO ,MXT ,NGEO ,NGL ,
36 . IX1 ,IX2 ,IX3 ,IX4 ,IX5 ,IX6 ,IX7 ,IX8 ,
37 . X1 ,X2 ,X3 ,X4 ,X5 ,X6 ,X7 ,X8 ,
38 . Y1 ,Y2 ,Y3 ,Y4 ,Y5 ,Y6 ,Y7 ,Y8 ,
39 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,Z7 ,Z8 ,
40 . RX ,RY ,RZ ,SX ,SY ,SZ ,TX ,TY ,TZ ,
41 . R11 ,R21 ,R31 ,R12 ,R22 ,R32 ,R13 ,R23 ,R33 ,
42 . F1X ,F1Y ,F1Z ,F2X ,F2Y ,F2Z ,TEMP0, TEMP,NINTEMP)
43
44 USE message_mod
45 use element_mod , only : nixs
46C
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C C o m m o n B l o c k s
53C-----------------------------------------------
54#include "vect01_c.inc"
55#include "com04_c.inc"
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER ,INTENT(IN) :: NINTEMP
60 INTEGER IXS(NIXS,*),MXT(*),NGL(*),NGEO(*),
61 . IX1(*),IX2(*),IX3(*),IX4(*),IX5(*),IX6(*),IX7(*),IX8(*)
62 my_real
63 . X(3,*),GEO(*),
64 . X1(*), X2(*), X3(*), X4(*), X5(*), X6(*), X7(*), X8(*),
65 . Y1(*), Y2(*), Y3(*), Y4(*), Y5(*), Y6(*), Y7(*), Y8(*),
66 . Z1(*), Z2(*), Z3(*), Z4(*), Z5(*), Z6(*), Z7(*), Z8(*),
67 . rx(*) ,ry(*) ,rz(*) ,sx(*) ,sy(*) ,sz(*) ,tx(*) ,ty(*) ,tz(*),
68 . r11(*),r12(*),r13(*),r21(*),r22(*),r23(*),r31(*),r32(*),r33(*),
69 . f1x(*),f1y(*),f1z(*),f2x(*),f2y(*),f2z(*),temp0(*),temp(*)
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I
74 my_real
75 . XL,YL,ZL
76C-----------------------------------------------
77C E x t e r n a l F u n c t i o n s
78C-----------------------------------------------
79 my_real
80 . CHECKVOLUME_8N
81C=======================================================================
82C CONNECTIVITIES AND MATERIAL NUMBER AND PID
83C--------------------------------------------------
84 DO i=lft,llt
85 mxt(i)=ixs(1,i)
86 ix1(i)=ixs(2,i)
87 ix2(i)=ixs(3,i)
88 ix3(i)=ixs(4,i)
89 ix4(i)=ixs(5,i)
90 ix5(i)=ixs(6,i)
91 ix6(i)=ixs(7,i)
92 ix7(i)=ixs(8,i)
93 ix8(i)=ixs(9,i)
94 ngeo(i)=ixs(nixs-1,i)
95 ngl(i)=ixs(nixs,i)
96 IF (checkvolume_8n(x ,ixs(1,i)) < zero) THEN
97C renumber connectivity
98 ix1(i)=ixs(6,i)
99 ix2(i)=ixs(7,i)
100 ix3(i)=ixs(8,i)
101 ix4(i)=ixs(9,i)
102 ix5(i)=ixs(2,i)
103 ix6(i)=ixs(3,i)
104 ix7(i)=ixs(4,i)
105 ix8(i)=ixs(5,i)
106 ixs(2,i)=ix1(i)
107 ixs(3,i)=ix2(i)
108 ixs(4,i)=ix3(i)
109 ixs(5,i)=ix4(i)
110 ixs(6,i)=ix5(i)
111 ixs(7,i)=ix6(i)
112 ixs(8,i)=ix7(i)
113 ixs(9,i)=ix8(i)
114 ENDIF
115 ENDDO
116C----------------------------
117C COORDONNEES
118C----------------------------
119 DO 20 i=lft,llt
120 x1(i)=x(1,ix1(i))
121 y1(i)=x(2,ix1(i))
122 z1(i)=x(3,ix1(i))
123 x2(i)=x(1,ix2(i))
124 y2(i)=x(2,ix2(i))
125 z2(i)=x(3,ix2(i))
126 x3(i)=x(1,ix3(i))
127 y3(i)=x(2,ix3(i))
128 z3(i)=x(3,ix3(i))
129 x4(i)=x(1,ix4(i))
130 y4(i)=x(2,ix4(i))
131 z4(i)=x(3,ix4(i))
132 x5(i)=x(1,ix5(i))
133 y5(i)=x(2,ix5(i))
134 z5(i)=x(3,ix5(i))
135 x6(i)=x(1,ix6(i))
136 y6(i)=x(2,ix6(i))
137 z6(i)=x(3,ix6(i))
138 x7(i)=x(1,ix7(i))
139 y7(i)=x(2,ix7(i))
140 z7(i)=x(3,ix7(i))
141 x8(i)=x(1,ix8(i))
142 y8(i)=x(2,ix8(i))
143 z8(i)=x(3,ix8(i))
144 20 CONTINUE
145 DO i=lft,llt
146 f1x(i) = x2(i) + x3(i) - x1(i) - x4(i)
147 f1y(i) = y2(i) + y3(i) - y1(i) - y4(i)
148 f1z(i) = z2(i) + z3(i) - z1(i) - z4(i)
149 f2x(i) = x3(i) + x3(i) - x1(i) - x4(i)
150 f2y(i) = y3(i) + y3(i) - y1(i) - y4(i)
151 f2z(i) = z3(i) + z3(i) - z1(i) - z4(i)
152 ENDDO
153C
154 IF(jclos/=0) CALL mod_close(geo,ngeo,
155 . x1, x2, x3, x4, x5, x6, x7, x8,
156 . y1, y2, y3, y4, y5, y6, y7, y8,
157 . z1, z2, z3, z4, z5, z6, z7, z8)
158C
159C-----------
160C convected frame .
161C-----------
162 CALL scortho3(
163 . x1, x2, x3, x4, x5, x6, x7, x8,
164 . y1, y2, y3, y4, y5, y6, y7, y8,
165 . z1, z2, z3, z4, z5, z6, z7, z8,
166 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
167 . r11,r21,r31,r12,r22,r32,r13,r23,r33 )
168C
169 DO i=lft,llt
170 xl=r11(i)*x1(i)+r21(i)*y1(i)+r31(i)*z1(i)
171 yl=r12(i)*x1(i)+r22(i)*y1(i)+r32(i)*z1(i)
172 zl=r13(i)*x1(i)+r23(i)*y1(i)+r33(i)*z1(i)
173 x1(i)=xl
174 y1(i)=yl
175 z1(i)=zl
176 xl=r11(i)*x2(i)+r21(i)*y2(i)+r31(i)*z2(i)
177 yl=r12(i)*x2(i)+r22(i)*y2(i)+r32(i)*z2(i)
178 zl=r13(i)*x2(i)+r23(i)*y2(i)+r33(i)*z2(i)
179 x2(i)=xl
180 y2(i)=yl
181 z2(i)=zl
182 xl=r11(i)*x3(i)+r21(i)*y3(i)+r31(i)*z3(i)
183 yl=r12(i)*x3(i)+r22(i)*y3(i)+r32(i)*z3(i)
184 zl=r13(i)*x3(i)+r23(i)*y3(i)+r33(i)*z3(i)
185 x3(i)=xl
186 y3(i)=yl
187 z3(i)=zl
188 xl=r11(i)*x4(i)+r21(i)*y4(i)+r31(i)*z4(i)
189 yl=r12(i)*x4(i)+r22(i)*y4(i)+r32(i)*z4(i)
190 zl=r13(i)*x4(i)+r23(i)*y4(i)+r33(i)*z4(i)
191 x4(i)=xl
192 y4(i)=yl
193 z4(i)=zl
194 xl=r11(i)*x5(i)+r21(i)*y5(i)+r31(i)*z5(i)
195 yl=r12(i)*x5(i)+r22(i)*y5(i)+r32(i)*z5(i)
196 zl=r13(i)*x5(i)+r23(i)*y5(i)+r33(i)*z5(i)
197 x5(i)=xl
198 y5(i)=yl
199 z5(i)=zl
200 xl=r11(i)*x6(i)+r21(i)*y6(i)+r31(i)*z6(i)
201 yl=r12(i)*x6(i)+r22(i)*y6(i)+r32(i)*z6(i)
202 zl=r13(i)*x6(i)+r23(i)*y6(i)+r33(i)*z6(i)
203 x6(i)=xl
204 y6(i)=yl
205 z6(i)=zl
206 xl=r11(i)*x7(i)+r21(i)*y7(i)+r31(i)*z7(i)
207 yl=r12(i)*x7(i)+r22(i)*y7(i)+r32(i)*z7(i)
208 zl=r13(i)*x7(i)+r23(i)*y7(i)+r33(i)*z7(i)
209 x7(i)=xl
210 y7(i)=yl
211 z7(i)=zl
212 xl=r11(i)*x8(i)+r21(i)*y8(i)+r31(i)*z8(i)
213 yl=r12(i)*x8(i)+r22(i)*y8(i)+r32(i)*z8(i)
214 zl=r13(i)*x8(i)+r23(i)*y8(i)+r33(i)*z8(i)
215 x8(i)=xl
216 y8(i)=yl
217 z8(i)=zl
218 ENDDO
219C
220 IF (jthe < 0 .or. nintemp > 0) THEN
221 IF(nintemp > 0 ) THEN
222 DO i= lft,llt
223 IF(temp(ix1(i))== zero) temp(ix1(i)) = temp0(i)
224 IF(temp(ix2(i))== zero) temp(ix2(i)) = temp0(i)
225 IF(temp(ix3(i))== zero) temp(ix3(i)) = temp0(i)
226 IF(temp(ix4(i))== zero) temp(ix4(i)) = temp0(i)
227 IF(temp(ix5(i))== zero) temp(ix5(i)) = temp0(i)
228 IF(temp(ix6(i))== zero) temp(ix6(i)) = temp0(i)
229 IF(temp(ix7(i))== zero) temp(ix7(i)) = temp0(i)
230 IF(temp(ix8(i))== zero) temp(ix8(i)) = temp0(i)
231 ENDDO
232 ELSE
233 DO i=lft,llt
234 temp(ix1(i))=temp0(i)
235 temp(ix2(i))=temp0(i)
236 temp(ix3(i))=temp0(i)
237 temp(ix4(i))=temp0(i)
238 temp(ix5(i))=temp0(i)
239 temp(ix6(i))=temp0(i)
240 temp(ix7(i))=temp0(i)
241 temp(ix8(i))=temp0(i)
242 ENDDO
243 ENDIF
244 ENDIF
245C-----------
246 RETURN
247 END
subroutine sccoor3(x, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, 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, r11, r21, r31, r12, r22, r32, r13, r23, r33, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp)
Definition sccoor3.F:43
subroutine mod_close(geo, ngeo, 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 mod_close.F:34
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