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