OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sr8coor3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sr8coor3 (offg, off, x, v, ixs, xloc, yloc, zloc, vxloc, vyloc, vzloc, mxt, nc, ngl, pid, r11, r12, r13, r21, r22, r23, r31, r32, r33, ioutprt, vgax, vgay, vgaz, vga2, nel, xgax, xgay, xgaz, xgxa2, xgya2, xgza2, xgxya, xgyza, xgzxa, iparg)

Function/Subroutine Documentation

◆ sr8coor3()

subroutine sr8coor3 ( offg,
off,
x,
v,
integer, dimension(11,*) ixs,
xloc,
yloc,
zloc,
vxloc,
vyloc,
vzloc,
integer, dimension(mvsiz) mxt,
integer, dimension(8,mvsiz) nc,
integer, dimension(mvsiz) ngl,
integer, dimension(mvsiz) pid,
r11,
r12,
r13,
r21,
r22,
r23,
r31,
r32,
r33,
integer ioutprt,
vgax,
vgay,
vgaz,
vga2,
integer nel,
xgax,
xgay,
xgaz,
xgxa2,
xgya2,
xgza2,
xgxya,
xgyza,
xgzxa,
integer, dimension(*) iparg )

Definition at line 31 of file sr8coor3.F.

38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C G l o b a l P a r a m e t e r s
44C-----------------------------------------------
45#include "mvsiz_p.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER IXS(11,*),IPARG(*),IOUTPRT,NEL
53 my_real offg(nel),off(mvsiz),x(3,*),v(3,*),
54 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
55 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
56 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
57 . vgax(mvsiz),vgay(mvsiz),vgaz(mvsiz),vga2(mvsiz),
58 . xgax(mvsiz),xgay(mvsiz),xgaz(mvsiz),
59 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz),
60 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz)
61 my_real xloc(mvsiz,8), yloc(mvsiz,8), zloc(mvsiz,8),
62 . vxloc(mvsiz,8),vyloc(mvsiz,8),vzloc(mvsiz,8)
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66 INTEGER NC(8,MVSIZ), MXT(MVSIZ), PID(MVSIZ), NGL(MVSIZ), I
67 my_real x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
68 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
69 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
70 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
71 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
72 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),vis(mvsiz),
73 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
74 . vx5(mvsiz), vx6(mvsiz), vx7(mvsiz), vx8(mvsiz),
75 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
76 . vy5(mvsiz), vy6(mvsiz), vy7(mvsiz), vy8(mvsiz),
77 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
78 . vz5(mvsiz), vz6(mvsiz), vz7(mvsiz), vz8(mvsiz),
79 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
80 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
81 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz)
82 my_real xl, yl, zl, vxl, vyl, vzl, off_l
83C=======================================================================
84 off_l = zero
85 DO i=1,nel
86 ngl(i)=ixs(11,i)
87 mxt(i)=ixs(1,i)
88 pid(i)=ixs(10,i)
89 nc(1,i)=ixs(2,i)
90 nc(2,i)=ixs(3,i)
91 nc(3,i)=ixs(4,i)
92 nc(4,i)=ixs(5,i)
93 nc(5,i)=ixs(6,i)
94 nc(6,i)=ixs(7,i)
95 nc(7,i)=ixs(8,i)
96 nc(8,i)=ixs(9,i)
97 ENDDO
98C
99C----------------------------
100C NODAL COORDINATES |
101C----------------------------
102 DO i=1,nel
103 x1(i)=x(1,nc(1,i))
104 y1(i)=x(2,nc(1,i))
105 z1(i)=x(3,nc(1,i))
106 x2(i)=x(1,nc(2,i))
107 y2(i)=x(2,nc(2,i))
108 z2(i)=x(3,nc(2,i))
109 x3(i)=x(1,nc(3,i))
110 y3(i)=x(2,nc(3,i))
111 z3(i)=x(3,nc(3,i))
112 x4(i)=x(1,nc(4,i))
113 y4(i)=x(2,nc(4,i))
114 z4(i)=x(3,nc(4,i))
115 x5(i)=x(1,nc(5,i))
116 y5(i)=x(2,nc(5,i))
117 z5(i)=x(3,nc(5,i))
118 x6(i)=x(1,nc(6,i))
119 y6(i)=x(2,nc(6,i))
120 z6(i)=x(3,nc(6,i))
121 x7(i)=x(1,nc(7,i))
122 y7(i)=x(2,nc(7,i))
123 z7(i)=x(3,nc(7,i))
124 x8(i)=x(1,nc(8,i))
125 y8(i)=x(2,nc(8,i))
126 z8(i)=x(3,nc(8,i))
127 ENDDO
128C-----------
129 DO i=1,nel
130 vx1(i)=v(1,nc(1,i))
131 vy1(i)=v(2,nc(1,i))
132 vz1(i)=v(3,nc(1,i))
133 vx2(i)=v(1,nc(2,i))
134 vy2(i)=v(2,nc(2,i))
135 vz2(i)=v(3,nc(2,i))
136 vx3(i)=v(1,nc(3,i))
137 vy3(i)=v(2,nc(3,i))
138 vz3(i)=v(3,nc(3,i))
139 vx4(i)=v(1,nc(4,i))
140 vy4(i)=v(2,nc(4,i))
141 vz4(i)=v(3,nc(4,i))
142 vx5(i)=v(1,nc(5,i))
143 vy5(i)=v(2,nc(5,i))
144 vz5(i)=v(3,nc(5,i))
145 vx6(i)=v(1,nc(6,i))
146 vy6(i)=v(2,nc(6,i))
147 vz6(i)=v(3,nc(6,i))
148 vx7(i)=v(1,nc(7,i))
149 vy7(i)=v(2,nc(7,i))
150 vz7(i)=v(3,nc(7,i))
151 vx8(i)=v(1,nc(8,i))
152 vy8(i)=v(2,nc(8,i))
153 vz8(i)=v(3,nc(8,i))
154 off(i) = min(one,abs(offg(i)))
155 off_l = min(off_l,offg(i))
156 ENDDO
157C
158C Prepare les sorties par PART.
159C-----------
160 IF(ioutprt/=0)THEN
161 DO i=1,nel
162 vgax(i)=vx1(i)+vx2(i)+vx3(i)+vx4(i)+vx5(i)+vx6(i)+vx7(i)+vx8(i)
163 vgay(i)=vy1(i)+vy2(i)+vy3(i)+vy4(i)+vy5(i)+vy6(i)+vy7(i)+vy8(i)
164 vgaz(i)=vz1(i)+vz2(i)+vz3(i)+vz4(i)+vz5(i)+vz6(i)+vz7(i)+vz8(i)
165 vga2(i)=vx1(i)*vx1(i)+vx2(i)*vx2(i)+vx3(i)*vx3(i)+vx4(i)*vx4(i)
166 1 +vx5(i)*vx5(i)+vx6(i)*vx6(i)+vx7(i)*vx7(i)+vx8(i)*vx8(i)
167 2 +vy1(i)*vy1(i)+vy2(i)*vy2(i)+vy3(i)*vy3(i)+vy4(i)*vy4(i)
168 3 +vy5(i)*vy5(i)+vy6(i)*vy6(i)+vy7(i)*vy7(i)+vy8(i)*vy8(i)
169 4 +vz1(i)*vz1(i)+vz2(i)*vz2(i)+vz3(i)*vz3(i)+vz4(i)*vz4(i)
170 5 +vz5(i)*vz5(i)+vz6(i)*vz6(i)+vz7(i)*vz7(i)+vz8(i)*vz8(i)
171 ENDDO
172 IF(iparg(80)==1) THEN
173 DO i=1,nel
174 xgax(i)=x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i)
175 xgay(i)=y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i)
176 xgaz(i)=z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i)
177 xgxa2(i)=x1(i)**2+x2(i)**2+x3(i)**2+x4(i)**2+x5(i)**2+x6(i)**2+x7(i)**2+x8(i)**2
178 xgya2(i)=y1(i)**2+y2(i)**2+y3(i)**2+y4(i)**2+y5(i)**2+y6(i)**2+y7(i)**2+y8(i)**2
179 xgza2(i)=z1(i)**2+z2(i)**2+z3(i)**2+z4(i)**2+z5(i)**2+z6(i)**2+z7(i)**2+z8(i)**2
180 xgxya(i)=x1(i)*y1(i)+x2(i)*y2(i)+x3(i)*y3(i)+x4(i)*y4(i)+x5(i)*y5(i)+x6(i)*y6(i)+x7(i)*y7(i)+x8(i)*y8(i)
181 xgyza(i)=y1(i)*z1(i)+y2(i)*z2(i)+y3(i)*z3(i)+y4(i)*z4(i)+y5(i)*z5(i)+y6(i)*z6(i)+y7(i)*z7(i)+y8(i)*z8(i)
182 xgzxa(i)=z1(i)*x1(i)+z2(i)*x2(i)+z3(i)*x3(i)+z4(i)*x4(i)+z5(i)*x5(i)+z6(i)*x6(i)+z7(i)*x7(i)+z8(i)*x8(i)
183 ENDDO
184 ENDIF
185 ENDIF
186C
187C-----------
188C REPERE CONVECTE (ITERATIONS).
189C-----------
190 CALL srepisot3(
191 1 x1, x2, x3, x4,
192 2 x5, x6, x7, x8,
193 3 y1, y2, y3, y4,
194 4 y5, y6, y7, y8,
195 5 z1, z2, z3, z4,
196 6 z5, z6, z7, z8,
197 7 rx, ry, rz, sx,
198 8 sy, sz, tx, ty,
199 9 tz, nel)
200 CALL sortho3(
201 1 rx, ry, rz, sx,
202 2 sy, sz, tx, ty,
203 3 tz, r11, r12, r13,
204 4 r21, r22, r23, r31,
205 5 r32, r33, nel)
206C-----------
207C PASSAGE AU REPERE CONVECTE.
208C-----------
209C X=RX' <=> X'=t(R)X chgt de base.
210 DO i=1,nel
211 xl=r11(i)*x1(i)+r21(i)*y1(i)+r31(i)*z1(i)
212 yl=r12(i)*x1(i)+r22(i)*y1(i)+r32(i)*z1(i)
213 zl=r13(i)*x1(i)+r23(i)*y1(i)+r33(i)*z1(i)
214 xloc(i,1)=xl
215 yloc(i,1)=yl
216 zloc(i,1)=zl
217 xl=r11(i)*x2(i)+r21(i)*y2(i)+r31(i)*z2(i)
218 yl=r12(i)*x2(i)+r22(i)*y2(i)+r32(i)*z2(i)
219 zl=r13(i)*x2(i)+r23(i)*y2(i)+r33(i)*z2(i)
220 xloc(i,2)=xl
221 yloc(i,2)=yl
222 zloc(i,2)=zl
223 xl=r11(i)*x3(i)+r21(i)*y3(i)+r31(i)*z3(i)
224 yl=r12(i)*x3(i)+r22(i)*y3(i)+r32(i)*z3(i)
225 zl=r13(i)*x3(i)+r23(i)*y3(i)+r33(i)*z3(i)
226 xloc(i,3)=xl
227 yloc(i,3)=yl
228 zloc(i,3)=zl
229 xl=r11(i)*x4(i)+r21(i)*y4(i)+r31(i)*z4(i)
230 yl=r12(i)*x4(i)+r22(i)*y4(i)+r32(i)*z4(i)
231 zl=r13(i)*x4(i)+r23(i)*y4(i)+r33(i)*z4(i)
232 xloc(i,4)=xl
233 yloc(i,4)=yl
234 zloc(i,4)=zl
235 xl=r11(i)*x5(i)+r21(i)*y5(i)+r31(i)*z5(i)
236 yl=r12(i)*x5(i)+r22(i)*y5(i)+r32(i)*z5(i)
237 zl=r13(i)*x5(i)+r23(i)*y5(i)+r33(i)*z5(i)
238 xloc(i,5)=xl
239 yloc(i,5)=yl
240 zloc(i,5)=zl
241 xl=r11(i)*x6(i)+r21(i)*y6(i)+r31(i)*z6(i)
242 yl=r12(i)*x6(i)+r22(i)*y6(i)+r32(i)*z6(i)
243 zl=r13(i)*x6(i)+r23(i)*y6(i)+r33(i)*z6(i)
244 xloc(i,6)=xl
245 yloc(i,6)=yl
246 zloc(i,6)=zl
247 xl=r11(i)*x7(i)+r21(i)*y7(i)+r31(i)*z7(i)
248 yl=r12(i)*x7(i)+r22(i)*y7(i)+r32(i)*z7(i)
249 zl=r13(i)*x7(i)+r23(i)*y7(i)+r33(i)*z7(i)
250 xloc(i,7)=xl
251 yloc(i,7)=yl
252 zloc(i,7)=zl
253 xl=r11(i)*x8(i)+r21(i)*y8(i)+r31(i)*z8(i)
254 yl=r12(i)*x8(i)+r22(i)*y8(i)+r32(i)*z8(i)
255 zl=r13(i)*x8(i)+r23(i)*y8(i)+r33(i)*z8(i)
256 xloc(i,8)=xl
257 yloc(i,8)=yl
258 zloc(i,8)=zl
259 ENDDO
260C-----------
261C Transition to the convected reference frame
262C-----------
263 DO i=1,nel
264 vxl=r11(i)*vx1(i)+r21(i)*vy1(i)+r31(i)*vz1(i)
265 vyl=r12(i)*vx1(i)+r22(i)*vy1(i)+r32(i)*vz1(i)
266 vzl=r13(i)*vx1(i)+r23(i)*vy1(i)+r33(i)*vz1(i)
267 vxloc(i,1)=vxl
268 vyloc(i,1)=vyl
269 vzloc(i,1)=vzl
270 vxl=r11(i)*vx2(i)+r21(i)*vy2(i)+r31(i)*vz2(i)
271 vyl=r12(i)*vx2(i)+r22(i)*vy2(i)+r32(i)*vz2(i)
272 vzl=r13(i)*vx2(i)+r23(i)*vy2(i)+r33(i)*vz2(i)
273 vxloc(i,2)=vxl
274 vyloc(i,2)=vyl
275 vzloc(i,2)=vzl
276 vxl=r11(i)*vx3(i)+r21(i)*vy3(i)+r31(i)*vz3(i)
277 vyl=r12(i)*vx3(i)+r22(i)*vy3(i)+r32(i)*vz3(i)
278 vzl=r13(i)*vx3(i)+r23(i)*vy3(i)+r33(i)*vz3(i)
279 vxloc(i,3)=vxl
280 vyloc(i,3)=vyl
281 vzloc(i,3)=vzl
282 vxl=r11(i)*vx4(i)+r21(i)*vy4(i)+r31(i)*vz4(i)
283 vyl=r12(i)*vx4(i)+r22(i)*vy4(i)+r32(i)*vz4(i)
284 vzl=r13(i)*vx4(i)+r23(i)*vy4(i)+r33(i)*vz4(i)
285 vxloc(i,4)=vxl
286 vyloc(i,4)=vyl
287 vzloc(i,4)=vzl
288 vxl=r11(i)*vx5(i)+r21(i)*vy5(i)+r31(i)*vz5(i)
289 vyl=r12(i)*vx5(i)+r22(i)*vy5(i)+r32(i)*vz5(i)
290 vzl=r13(i)*vx5(i)+r23(i)*vy5(i)+r33(i)*vz5(i)
291 vxloc(i,5)=vxl
292 vyloc(i,5)=vyl
293 vzloc(i,5)=vzl
294 vxl=r11(i)*vx6(i)+r21(i)*vy6(i)+r31(i)*vz6(i)
295 vyl=r12(i)*vx6(i)+r22(i)*vy6(i)+r32(i)*vz6(i)
296 vzl=r13(i)*vx6(i)+r23(i)*vy6(i)+r33(i)*vz6(i)
297 vxloc(i,6)=vxl
298 vyloc(i,6)=vyl
299 vzloc(i,6)=vzl
300 vxl=r11(i)*vx7(i)+r21(i)*vy7(i)+r31(i)*vz7(i)
301 vyl=r12(i)*vx7(i)+r22(i)*vy7(i)+r32(i)*vz7(i)
302 vzl=r13(i)*vx7(i)+r23(i)*vy7(i)+r33(i)*vz7(i)
303 vxloc(i,7)=vxl
304 vyloc(i,7)=vyl
305 vzloc(i,7)=vzl
306 vxl=r11(i)*vx8(i)+r21(i)*vy8(i)+r31(i)*vz8(i)
307 vyl=r12(i)*vx8(i)+r22(i)*vy8(i)+r32(i)*vz8(i)
308 vzl=r13(i)*vx8(i)+r23(i)*vy8(i)+r33(i)*vz8(i)
309 vxloc(i,8)=vxl
310 vyloc(i,8)=vyl
311 vzloc(i,8)=vzl
312C
313 vxl = (vxloc(i,1)+vxloc(i,2)+vxloc(i,3)+vxloc(i,4)+ vxloc(i,5)+vxloc(i,6)+vxloc(i,7)+vxloc(i,8))*one_over_8
314 vyl = (vyloc(i,1)+vyloc(i,2)+vyloc(i,3)+vyloc(i,4)+ vyloc(i,5)+vyloc(i,6)+vyloc(i,7)+vyloc(i,8))*one_over_8
315 vzl = (vzloc(i,1)+vzloc(i,2)+vzloc(i,3)+vzloc(i,4)+ vzloc(i,5)+vzloc(i,6)+vzloc(i,7)+vzloc(i,8)) * one_over_8
316 vxloc(i,1)=vxloc(i,1)-vxl
317 vyloc(i,1)=vyloc(i,1)-vyl
318 vzloc(i,1)=vzloc(i,1)-vzl
319 vxloc(i,2)=vxloc(i,2)-vxl
320 vyloc(i,2)=vyloc(i,2)-vyl
321 vzloc(i,2)=vzloc(i,2)-vzl
322 vxloc(i,3)=vxloc(i,3)-vxl
323 vyloc(i,3)=vyloc(i,3)-vyl
324 vzloc(i,3)=vzloc(i,3)-vzl
325 vxloc(i,4)=vxloc(i,4)-vxl
326 vyloc(i,4)=vyloc(i,4)-vyl
327 vzloc(i,4)=vzloc(i,4)-vzl
328 vxloc(i,5)=vxloc(i,5)-vxl
329 vyloc(i,5)=vyloc(i,5)-vyl
330 vzloc(i,5)=vzloc(i,5)-vzl
331 vxloc(i,6)=vxloc(i,6)-vxl
332 vyloc(i,6)=vyloc(i,6)-vyl
333 vzloc(i,6)=vzloc(i,6)-vzl
334 vxloc(i,7)=vxloc(i,7)-vxl
335 vyloc(i,7)=vyloc(i,7)-vyl
336 vzloc(i,7)=vzloc(i,7)-vzl
337 vxloc(i,8)=vxloc(i,8)-vxl
338 vyloc(i,8)=vyloc(i,8)-vyl
339 vzloc(i,8)=vzloc(i,8)-vzl
340 ENDDO
341C-----------
342 IF(off_l<zero)THEN
343 DO i=1,nel
344 IF(offg(i)<zero)THEN
345 vxloc(i,1)=zero
346 vyloc(i,1)=zero
347 vzloc(i,1)=zero
348 vxloc(i,2)=zero
349 vyloc(i,2)=zero
350 vzloc(i,2)=zero
351 vxloc(i,3)=zero
352 vyloc(i,3)=zero
353 vzloc(i,3)=zero
354 vxloc(i,4)=zero
355 vyloc(i,4)=zero
356 vzloc(i,4)=zero
357 vxloc(i,5)=zero
358 vyloc(i,5)=zero
359 vzloc(i,5)=zero
360 vxloc(i,6)=zero
361 vyloc(i,6)=zero
362 vzloc(i,6)=zero
363 vxloc(i,7)=zero
364 vyloc(i,7)=zero
365 vzloc(i,7)=zero
366 vxloc(i,8)=zero
367 vyloc(i,8)=zero
368 vzloc(i,8)=zero
369 ENDIF
370 ENDDO
371 ENDIF
372C-----------
373 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
subroutine srepisot3(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, nel)
Definition srepisot3.F:42
subroutine sortho3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition sortho3.F:33