OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s4coor3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "scr05_c.inc"
#include "scr18_c.inc"
#include "vectorize.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s4coor3 (x, ixs, v, w, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vdx1, vdx2, vdx3, vdx4, vdy1, vdy2, vdy3, vdy4, vdz1, vdz2, vdz3, vdz4, vdx, vdy, vdz, vd2, vis, offg, off, sav, rho, rhoo, nc1, nc2, nc3, nc4, ngl, mxt, ngeo, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, xd1, xd2, xd3, xd4, yd1, yd2, yd3, yd4, zd1, zd2, zd3, zd4, xdp, nel, jale, ismstr, jeul, jlag)

Function/Subroutine Documentation

◆ s4coor3()

subroutine s4coor3 ( x,
integer, dimension(nixs,*), intent(in) ixs,
v,
w,
x1,
x2,
x3,
x4,
y1,
y2,
y3,
y4,
z1,
z2,
z3,
z4,
vx1,
vx2,
vx3,
vx4,
vy1,
vy2,
vy3,
vy4,
vz1,
vz2,
vz3,
vz4,
vdx1,
vdx2,
vdx3,
vdx4,
vdy1,
vdy2,
vdy3,
vdy4,
vdz1,
vdz2,
vdz3,
vdz4,
vdx,
vdy,
vdz,
vd2,
vis,
offg,
off,
double precision, dimension(nel,9) sav,
rho,
rhoo,
integer, dimension(mvsiz) nc1,
integer, dimension(mvsiz) nc2,
integer, dimension(mvsiz) nc3,
integer, dimension(mvsiz) nc4,
integer, dimension(mvsiz) ngl,
integer, dimension(mvsiz) mxt,
integer, dimension(mvsiz) ngeo,
f11,
f21,
f31,
f12,
f22,
f32,
f13,
f23,
f33,
f14,
f24,
f34,
double precision, dimension(mvsiz) xd1,
double precision, dimension(mvsiz) xd2,
double precision, dimension(mvsiz) xd3,
double precision, dimension(mvsiz) xd4,
double precision, dimension(mvsiz) yd1,
double precision, dimension(mvsiz) yd2,
double precision, dimension(mvsiz) yd3,
double precision, dimension(mvsiz) yd4,
double precision, dimension(mvsiz) zd1,
double precision, dimension(mvsiz) zd2,
double precision, dimension(mvsiz) zd3,
double precision, dimension(mvsiz) zd4,
double precision, dimension(3,*) xdp,
integer, intent(in) nel,
integer, intent(in) jale,
integer, intent(in) ismstr,
integer, intent(in) jeul,
integer, intent(in) jlag )

Definition at line 28 of file s4coor3.F.

51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C G l o b a l P a r a m e t e r s
57C-----------------------------------------------
58#include "mvsiz_p.inc"
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62#include "scr05_c.inc"
63#include "scr18_c.inc"
64C-----------------------------------------------
65C D u m m y A r g u m e n t s
66C-----------------------------------------------
67 INTEGER, INTENT(IN) :: JALE
68 INTEGER, INTENT(IN) :: ISMSTR
69 INTEGER, INTENT(IN) :: JEUL
70 INTEGER, INTENT(IN) :: JLAG
71 INTEGER, INTENT(IN) :: NEL
72 INTEGER, INTENT(IN) :: IXS(NIXS,*)
74 . x(3,*),v(3,*),w(3,*), vis(mvsiz),
75 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
76 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
77 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
78 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
79 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
80 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
81 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
82 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
83 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
84 . vdx(mvsiz), vdy(mvsiz), vdz(mvsiz),vd2(mvsiz),
85 . offg(nel),off(mvsiz),rho(nel),
86 . f11(mvsiz),f21(mvsiz),f31(mvsiz),f12(mvsiz),f22(mvsiz),f32(mvsiz),
87 . f13(mvsiz),f23(mvsiz),f33(mvsiz),f14(mvsiz),f24(mvsiz),f34(mvsiz),
88 . rhoo(mvsiz)
89 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
90 . MXT(MVSIZ), NGL(MVSIZ),NGEO(MVSIZ)
91
92 DOUBLE PRECISION
93 . XDP(3,*), SAV(NEL,9),
94 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
95 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
96 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ)
97
99 . off_l
100C-----------------------------------------------
101C L o c a l V a r i a b l e s
102C-----------------------------------------------
103 INTEGER I
104C-----------------------------------------------
105#include "vectorize.inc"
106 DO i=1,nel
107 vis(i)=zero
108 ngeo(i)=ixs(10,i)
109 ngl(i)=ixs(11,i)
110 mxt(i)=ixs(1,i)
111 nc1(i)=ixs(2,i)
112 nc2(i)=ixs(4,i)
113 nc3(i)=ixs(7,i)
114 nc4(i)=ixs(6,i)
115 rhoo(i)=rho(i)
116 ENDDO
117#include "vectorize.inc"
118 DO i=1,nel
119 x1(i) =x(1,nc1(i))
120 y1(i) =x(2,nc1(i))
121 z1(i) =x(3,nc1(i))
122 x2(i) =x(1,nc2(i))
123 y2(i) =x(2,nc2(i))
124 z2(i) =x(3,nc2(i))
125 x3(i) =x(1,nc3(i))
126 y3(i) =x(2,nc3(i))
127 z3(i) =x(3,nc3(i))
128 x4(i) =x(1,nc4(i))
129 y4(i) =x(2,nc4(i))
130 z4(i) =x(3,nc4(i))
131 vx1(i)=v(1,nc1(i))
132 vy1(i)=v(2,nc1(i))
133 vz1(i)=v(3,nc1(i))
134 vx2(i)=v(1,nc2(i))
135 vy2(i)=v(2,nc2(i))
136 vz2(i)=v(3,nc2(i))
137 vx3(i)=v(1,nc3(i))
138 vy3(i)=v(2,nc3(i))
139 vz3(i)=v(3,nc3(i))
140 vx4(i)=v(1,nc4(i))
141 vy4(i)=v(2,nc4(i))
142 vz4(i)=v(3,nc4(i))
143 ENDDO
144
145 off_l = zero
146C----------------------------
147C NODAL COORDINATES |
148C----------------------------
149 IF((ismstr<=4.AND.jlag>0).OR.(ismstr==12.AND.idtmin(1)==3)) THEN
150
151 IF(iresp == 1) THEN
152#include "vectorize.inc"
153 DO i=1,nel
154 IF(abs(offg(i))>one)THEN
155 xd1(i)=sav(i,1)
156 yd1(i)=sav(i,2)
157 zd1(i)=sav(i,3)
158 xd2(i)=sav(i,4)
159 yd2(i)=sav(i,5)
160 zd2(i)=sav(i,6)
161 xd3(i)=sav(i,7)
162 yd3(i)=sav(i,8)
163 zd3(i)=sav(i,9)
164 xd4(i)=zero
165 yd4(i)=zero
166 zd4(i)=zero
167 off(i) = abs(offg(i))-one
168C OFF_L = MIN(OFF_L,OFFG(I))
169 ELSE
170 xd1(i)=xdp(1,nc1(i))
171 yd1(i)=xdp(2,nc1(i))
172 zd1(i)=xdp(3,nc1(i))
173 xd2(i)=xdp(1,nc2(i))
174 yd2(i)=xdp(2,nc2(i))
175 zd2(i)=xdp(3,nc2(i))
176 xd3(i)=xdp(1,nc3(i))
177 yd3(i)=xdp(2,nc3(i))
178 zd3(i)=xdp(3,nc3(i))
179 xd4(i)=xdp(1,nc4(i))
180 yd4(i)=xdp(2,nc4(i))
181 zd4(i)=xdp(3,nc4(i))
182 off(i) = abs(offg(i))
183C OFF_L = MIN(OFF_L,OFFG(I))
184 ENDIF
185 ENDDO
186 off_l = min(off_l,minval(offg(1:nel)))
187 ELSE
188#include "vectorize.inc"
189 DO i=1,nel
190 IF(abs(offg(i))>one)THEN
191 xd1(i)=sav(i,1)
192 yd1(i)=sav(i,2)
193 zd1(i)=sav(i,3)
194 xd2(i)=sav(i,4)
195 yd2(i)=sav(i,5)
196 zd2(i)=sav(i,6)
197 xd3(i)=sav(i,7)
198 yd3(i)=sav(i,8)
199 zd3(i)=sav(i,9)
200 xd4(i)=zero
201 yd4(i)=zero
202 zd4(i)=zero
203 off(i) = abs(offg(i))-one
204C OFF_L = MIN(OFF_L,OFFG(I))
205 ELSE
206 xd1(i)=x1(i)
207 yd1(i)=y1(i)
208 zd1(i)=z1(i)
209 xd2(i)=x2(i)
210 yd2(i)=y2(i)
211 zd2(i)=z2(i)
212 xd3(i)=x3(i)
213 yd3(i)=y3(i)
214 zd3(i)=z3(i)
215 xd4(i)=x4(i)
216 yd4(i)=y4(i)
217 zd4(i)=z4(i)
218 off(i) = abs(offg(i))
219C OFF_L = MIN(OFF_L,OFFG(I))
220 ENDIF
221 ENDDO
222 off_l = min(off_l,minval(offg(1:nel)))
223 ENDIF
224C
225 ELSE
226C
227 IF(iresp==1)THEN
228#include "vectorize.inc"
229 DO i=1,nel
230 xd1(i)=xdp(1,nc1(i))
231 yd1(i)=xdp(2,nc1(i))
232 zd1(i)=xdp(3,nc1(i))
233 xd2(i)=xdp(1,nc2(i))
234 yd2(i)=xdp(2,nc2(i))
235 zd2(i)=xdp(3,nc2(i))
236 xd3(i)=xdp(1,nc3(i))
237 yd3(i)=xdp(2,nc3(i))
238 zd3(i)=xdp(3,nc3(i))
239 xd4(i)=xdp(1,nc4(i))
240 yd4(i)=xdp(2,nc4(i))
241 zd4(i)=xdp(3,nc4(i))
242 off(i) = abs(offg(i))
243C OFF_L = MIN(OFF_L,OFFG(I))
244 ENDDO
245 off_l = min(off_l,minval(offg(1:nel)))
246 ELSE
247#include "vectorize.inc"
248 DO i=1,nel
249 xd1(i)=x1(i)
250 yd1(i)=y1(i)
251 zd1(i)=z1(i)
252 xd2(i)=x2(i)
253 yd2(i)=y2(i)
254 zd2(i)=z2(i)
255 xd3(i)=x3(i)
256 yd3(i)=y3(i)
257 zd3(i)=z3(i)
258 xd4(i)=x4(i)
259 yd4(i)=y4(i)
260 zd4(i)=z4(i)
261 off(i) = abs(offg(i))
262C OFF_L = MIN(OFF_L,OFFG(I))
263 ENDDO
264 off_l = min(off_l,minval(offg(1:nel)))
265 ENDIF
266C
267 ENDIF
268C
269 IF(off_l<zero)THEN
270#include "vectorize.inc"
271 DO i=1,nel
272 IF(offg(i)<zero)THEN
273 vx1(i)=zero
274 vy1(i)=zero
275 vz1(i)=zero
276 vx2(i)=zero
277 vy2(i)=zero
278 vz2(i)=zero
279 vx3(i)=zero
280 vy3(i)=zero
281 vz3(i)=zero
282 vx4(i)=zero
283 vy4(i)=zero
284 vz4(i)=zero
285 ENDIF
286 ENDDO
287 ENDIF
288
289 f11(1:nel)=zero
290 f21(1:nel)=zero
291 f31(1:nel)=zero
292 f12(1:nel)=zero
293 f22(1:nel)=zero
294 f32(1:nel)=zero
295 f13(1:nel)=zero
296 f23(1:nel)=zero
297 f33(1:nel)=zero
298 f14(1:nel)=zero
299 f24(1:nel)=zero
300 f34(1:nel)=zero
301C
302 IF (jlag/=0)THEN
303 vd2(1:nel)=zero
304 RETURN
305C
306 ELSEIF(jale/=0)THEN
307#include "vectorize.inc"
308 DO i=1,nel
309 vdx1(i)=vx1(i)-w(1,nc1(i))
310 vdy1(i)=vy1(i)-w(2,nc1(i))
311 vdz1(i)=vz1(i)-w(3,nc1(i))
312 vdx2(i)=vx2(i)-w(1,nc2(i))
313 vdy2(i)=vy2(i)-w(2,nc2(i))
314 vdz2(i)=vz2(i)-w(3,nc2(i))
315 vdx3(i)=vx3(i)-w(1,nc3(i))
316 vdy3(i)=vy3(i)-w(2,nc3(i))
317 vdz3(i)=vz3(i)-w(3,nc3(i))
318 vdx4(i)=vx4(i)-w(1,nc4(i))
319 vdy4(i)=vy4(i)-w(2,nc4(i))
320 vdz4(i)=vz4(i)-w(3,nc4(i))
321 ENDDO
322 ELSEIF(jeul/=0)THEN
323#include "vectorize.inc"
324 DO i=1,nel
325 vdx1(i)=vx1(i)
326 vdy1(i)=vy1(i)
327 vdz1(i)=vz1(i)
328 vdx2(i)=vx2(i)
329 vdy2(i)=vy2(i)
330 vdz2(i)=vz2(i)
331 vdx3(i)=vx3(i)
332 vdy3(i)=vy3(i)
333 vdz3(i)=vz3(i)
334 vdx4(i)=vx4(i)
335 vdy4(i)=vy4(i)
336 vdz4(i)=vz4(i)
337 ENDDO
338 ENDIF
339#include "vectorize.inc"
340 DO i=1,nel
341 vdx(i)=fourth*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i))
342 vdy(i)=fourth*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i))
343 vdz(i)=fourth*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i))
344 vd2(i)=nine*(vdx(i)**2+vdy(i)**2+vdz(i)**2)
345 ENDDO
346C
347 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20