OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i7pen3.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!|| i7pen3 ../engine/source/interfaces/intsort/i7pen3.F
25!||--- called by ------------------------------------------------------
26!|| i10sto ../engine/source/interfaces/intsort/i10sto.F
27!|| i20sto ../engine/source/interfaces/intsort/i20sto.F
28!|| i21sto ../engine/source/interfaces/int21/i21sto.F
29!|| i23sto ../engine/source/interfaces/int23/i23sto.F
30!|| i7sto ../engine/source/interfaces/intsort/i7sto.F
31!||====================================================================
32 SUBROUTINE i7pen3(JLT ,MARGE ,X1 ,X2 ,X3 ,
33 . X4 ,Y1 ,Y2 ,Y3 ,Y4 ,
34 . Z1 ,Z2 ,Z3 ,Z4 ,XI ,
35 . YI ,ZI ,PENE ,IX1 ,IX2 ,
36 . IX3 ,IX4 ,IGAP ,GAP ,GAPV )
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER JLT, IGAP
49 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ)
50 my_real
51 . GAPV(MVSIZ), MARGE, GAP
52 my_real
53 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
54 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
55 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
56 . xi(mvsiz), yi(mvsiz), zi(mvsiz), pene(mvsiz)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I, IG,I3N
61 my_real
62 . X0(MVSIZ), Y0(MVSIZ), Z0(MVSIZ), GAP2(MVSIZ),
63 . NX1(MVSIZ), NX2(MVSIZ), NX3(MVSIZ), NX4(MVSIZ),
64 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
65 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
66 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
67 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
68 . al1(mvsiz), al2(mvsiz), al3(mvsiz), al4(mvsiz),
69 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
70 . x01(mvsiz), x02(mvsiz), x03(mvsiz), x04(mvsiz),
71 . y01(mvsiz), y02(mvsiz), y03(mvsiz), y04(mvsiz),
72 . z01(mvsiz), z02(mvsiz), z03(mvsiz), z04(mvsiz),
73 . xi1(mvsiz), xi2(mvsiz), xi3(mvsiz), xi4(mvsiz),
74 . yi1(mvsiz), yi2(mvsiz), yi3(mvsiz), yi4(mvsiz),
75 . zi1(mvsiz), zi2(mvsiz), zi3(mvsiz), zi4(mvsiz),
76 . hlb1(mvsiz), hlc1(mvsiz), hlb2(mvsiz),hlc2(mvsiz),
77 . hlb3(mvsiz), hlc3(mvsiz), hlb4(mvsiz),hlc4(mvsiz)
78 my_real
79 . dti, s2,a1,a2,a3,a4,d1,d2,d3,d4,
80 . x12,x23,x34,x41,xi0,sx1,sx2,sx3,sx4,sx0,
81 . y12,y23,y34,y41,yi0,sy1,sy2,sy3,sy4,sy0,
82 . z12,z23,z34,z41,zi0,sz1,sz2,sz3,sz4,sz0,
83 . la, hla, aaa, zoneinf, zoneinf2
84C-----------------------------------------------
85c GAPV(I)=GAP+CURV_MAX(CAND_E(I))
86 DO i = 1, jlt
87 zoneinf = gapv(i)+marge
88 gap2(i)= zoneinf*zoneinf
89 END DO
90C
91C 0 QUAD, 1 TRI ,2 MIXTE
92 i3n=0
93 DO i=1,jlt
94 IF(ix3(i)==ix4(i))i3n=i3n+1
95 ENDDO
96 IF(i3n==jlt)THEN
97 i3n=1
98 ELSEIF(i3n/=0)THEN
99 i3n=2
100 ENDIF
101C--------------------------------------------------------
102C UNIQUEMENT POUR PAQUET DE QUADRANGLE
103C--------------------------------------------------------
104 IF(i3n==0) THEN
105 DO i=1,jlt
106 x0(i) = fourth*(x1(i)+x2(i)+x3(i)+x4(i))
107 y0(i) = fourth*(y1(i)+y2(i)+y3(i)+y4(i))
108 z0(i) = fourth*(z1(i)+z2(i)+z3(i)+z4(i))
109 ENDDO
110C--------------------------------------------------------
111C CAS DES PAQUETS MIXTES
112C--------------------------------------------------------
113 ELSEIF(i3n==2) THEN
114 DO i=1,jlt
115 IF(ix3(i)/=ix4(i))THEN
116 x0(i) = fourth*(x1(i)+x2(i)+x3(i)+x4(i))
117 y0(i) = fourth*(y1(i)+y2(i)+y3(i)+y4(i))
118 z0(i) = fourth*(z1(i)+z2(i)+z3(i)+z4(i))
119 ELSE
120 x0(i) = x3(i)
121 y0(i) = y3(i)
122 z0(i) = z3(i)
123 ENDIF
124 ENDDO
125 ENDIF
126C--------------------------------------------------------
127C UNIQUEMENT POUR PAQUET DE TRIANGLE
128C--------------------------------------------------------
129 IF(i3n==1) THEN
130 DO i=1,jlt
131C
132 x01(i) = x1(i) - x3(i)
133 y01(i) = y1(i) - y3(i)
134 z01(i) = z1(i) - z3(i)
135C
136 x02(i) = x2(i) - x3(i)
137 y02(i) = y2(i) - y3(i)
138 z02(i) = z2(i) - z3(i)
139C
140 xi0 = x3(i) - xi(i)
141 yi0 = y3(i) - yi(i)
142 zi0 = z3(i) - zi(i)
143C
144 xi1(i) = x1(i) - xi(i)
145 yi1(i) = y1(i) - yi(i)
146 zi1(i) = z1(i) - zi(i)
147C
148 xi2(i) = x2(i) - xi(i)
149 yi2(i) = y2(i) - yi(i)
150 zi2(i) = z2(i) - zi(i)
151C
152 sx1 = yi0*zi1(i) - zi0*yi1(i)
153 sy1 = zi0*xi1(i) - xi0*zi1(i)
154 sz1 = xi0*yi1(i) - yi0*xi1(i)
155C
156 sx2 = yi0*zi2(i) - zi0*yi2(i)
157 sy2 = zi0*xi2(i) - xi0*zi2(i)
158 sz2 = xi0*yi2(i) - yi0*xi2(i)
159C
160 sx0 = y01(i)*z02(i) - z01(i)*y02(i)
161 sy0 = z01(i)*x02(i) - x01(i)*z02(i)
162 sz0 = x01(i)*y02(i) - y01(i)*x02(i)
163 s2 = 1./max(em30,sx0*sx0 + sy0*sy0 + sz0*sz0)
164C
165 lb1(i) = -(sx0*sx2 + sy0*sy2 + sz0*sz2) * s2
166 lc1(i) = (sx0*sx1 + sy0*sy1 + sz0*sz1) * s2
167C
168 aaa = one/max(em30,x01(i)*x01(i)+y01(i)*y01(i)+z01(i)*z01(i))
169 hlc1(i)= lc1(i)*abs(lc1(i))*aaa
170 al1(i) = -(xi0*x01(i)+yi0*y01(i)+zi0*z01(i))*aaa
171 al1(i) = max(zero,min(one,al1(i)))
172 aaa = one/max(em30,x02(i)*x02(i)+y02(i)*y02(i)+z02(i)*z02(i))
173 hlb1(i)= lb1(i)*abs(lb1(i))*aaa
174 al2(i) = -(xi0*x02(i)+yi0*y02(i)+zi0*z02(i))*aaa
175 al2(i) = max(zero,min(one,al2(i)))
176C
177 ENDDO
178C
179 DO i=1,jlt
180 x12 = x2(i) - x1(i)
181 y12 = y2(i) - y1(i)
182 z12 = z2(i) - z1(i)
183 la = one - lb1(i) - lc1(i)
184 aaa = one / max(em20,x12*x12+y12*y12+z12*z12)
185 hla= la*abs(la) * aaa
186 IF(la<zero.AND.
187 + hla<=hlb1(i).AND.hla<=hlc1(i))THEN
188 lb1(i) = (xi2(i)*x12+yi2(i)*y12+zi2(i)*z12)*aaa
189 lb1(i) = max(zero,min(one,lb1(i)))
190 lc1(i) = one - lb1(i)
191 ELSEIF(lb1(i)<zero.AND.
192 + hlb1(i)<=hlc1(i).AND.hlb1(i)<=hla)THEN
193 lb1(i) = zero
194 lc1(i) = al2(i)
195 ELSEIF(lc1(i)<zero.AND.
196 + hlc1(i)<=hla.AND.hlc1(i)<=hlb1(i))THEN
197 lc1(i) = zero
198 lb1(i) = al1(i)
199 ENDIF
200 ENDDO
201C
202 DO i=1,jlt
203C
204 nx1(i) = xi(i)-(x3(i) + lb1(i)*x01(i) + lc1(i)*x02(i))
205 ny1(i) = yi(i)-(y3(i) + lb1(i)*y01(i) + lc1(i)*y02(i))
206 nz1(i) = zi(i)-(z3(i) + lb1(i)*z01(i) + lc1(i)*z02(i))
207 p1(i) = nx1(i)*nx1(i) + ny1(i)*ny1(i) +nz1(i)*nz1(i)
208C !!!!!!!!!!!!!!!!!!!!!!!
209C PENE = GAP^2 - DIST^2 UTILISE POUR TESTER SI NON NUL
210C!!!!!!!!!!!!!!!!!!!!!!!!
211 pene(i) = max(zero, gap2(i) - p1(i))
212C
213 ENDDO
214C--------------------------------------------------------
215C CAS DES PAQUETS MIXTES OU QUADRANGLE
216C--------------------------------------------------------
217 ELSE
218C
219 DO i=1,jlt
220C
221 x01(i) = x1(i) - x0(i)
222 y01(i) = y1(i) - y0(i)
223 z01(i) = z1(i) - z0(i)
224C
225 x02(i) = x2(i) - x0(i)
226 y02(i) = y2(i) - y0(i)
227 z02(i) = z2(i) - z0(i)
228C
229 x03(i) = x3(i) - x0(i)
230 y03(i) = y3(i) - y0(i)
231 z03(i) = z3(i) - z0(i)
232C
233 x04(i) = x4(i) - x0(i)
234 y04(i) = y4(i) - y0(i)
235 z04(i) = z4(i) - z0(i)
236C
237 xi0 = x0(i) - xi(i)
238 yi0 = y0(i) - yi(i)
239 zi0 = z0(i) - zi(i)
240C
241 xi1(i) = x1(i) - xi(i)
242 yi1(i) = y1(i) - yi(i)
243 zi1(i) = z1(i) - zi(i)
244C
245 xi2(i) = x2(i) - xi(i)
246 yi2(i) = y2(i) - yi(i)
247 zi2(i) = z2(i) - zi(i)
248C
249 xi3(i) = x3(i) - xi(i)
250 yi3(i) = y3(i) - yi(i)
251 zi3(i) = z3(i) - zi(i)
252C
253 xi4(i) = x4(i) - xi(i)
254 yi4(i) = y4(i) - yi(i)
255 zi4(i) = z4(i) - zi(i)
256C
257 sx1 = yi0*zi1(i) - zi0*yi1(i)
258 sy1 = zi0*xi1(i) - xi0*zi1(i)
259 sz1 = xi0*yi1(i) - yi0*xi1(i)
260C
261 sx2 = yi0*zi2(i) - zi0*yi2(i)
262 sy2 = zi0*xi2(i) - xi0*zi2(i)
263 sz2 = xi0*yi2(i) - yi0*xi2(i)
264C
265 sx0 = y01(i)*z02(i) - z01(i)*y02(i)
266 sy0 = z01(i)*x02(i) - x01(i)*z02(i)
267 sz0 = x01(i)*y02(i) - y01(i)*x02(i)
268 s2 = one/max(em30,sx0*sx0 + sy0*sy0 + sz0*sz0)
269C
270 lb1(i) = -(sx0*sx2 + sy0*sy2 + sz0*sz2) * s2
271 lc1(i) = (sx0*sx1 + sy0*sy1 + sz0*sz1) * s2
272C
273 sx3 = yi0*zi3(i) - zi0*yi3(i)
274 sy3 = zi0*xi3(i) - xi0*zi3(i)
275 sz3 = xi0*yi3(i) - yi0*xi3(i)
276C
277 sx0 = y02(i)*z03(i) - z02(i)*y03(i)
278 sy0 = z02(i)*x03(i) - x02(i)*z03(i)
279 sz0 = x02(i)*y03(i) - y02(i)*x03(i)
280 s2 = one/max(em30,sx0*sx0 + sy0*sy0 + sz0*sz0)
281C
282 lb2(i) = -(sx0*sx3 + sy0*sy3 + sz0*sz3) * s2
283 lc2(i) = (sx0*sx2 + sy0*sy2 + sz0*sz2) * s2
284C
285 sx4 = yi0*zi4(i) - zi0*yi4(i)
286 sy4 = zi0*xi4(i) - xi0*zi4(i)
287 sz4 = xi0*yi4(i) - yi0*xi4(i)
288C
289 sx0 = y03(i)*z04(i) - z03(i)*y04(i)
290 sy0 = z03(i)*x04(i) - x03(i)*z04(i)
291 sz0 = x03(i)*y04(i) - y03(i)*x04(i)
292 s2 = one/max(em30,sx0*sx0 + sy0*sy0 + sz0*sz0)
293C
294 lb3(i) = -(sx0*sx4 + sy0*sy4 + sz0*sz4) * s2
295 lc3(i) = (sx0*sx3 + sy0*sy3 + sz0*sz3) * s2
296C
297 sx0 = y04(i)*z01(i) - z04(i)*y01(i)
298 sy0 = z04(i)*x01(i) - x04(i)*z01(i)
299 sz0 = x04(i)*y01(i) - y04(i)*x01(i)
300 s2 = one/max(em30,sx0*sx0 + sy0*sy0 + sz0*sz0)
301C
302 lb4(i) = -(sx0*sx1 + sy0*sy1 + sz0*sz1) * s2
303 lc4(i) = (sx0*sx4 + sy0*sy4 + sz0*sz4) * s2
304C
305 aaa = one/max(em30,x01(i)*x01(i)+y01(i)*y01(i)+z01(i)*z01(i))
306 hlc1(i)= lc1(i)*abs(lc1(i))*aaa
307 hlb4(i)= lb4(i)*abs(lb4(i))*aaa
308 al1(i) = -(xi0*x01(i)+yi0*y01(i)+zi0*z01(i))*aaa
309 al1(i) = max(zero,min(one,al1(i)))
310 aaa = one/max(em30,x02(i)*x02(i)+y02(i)*y02(i)+z02(i)*z02(i))
311 hlc2(i)= lc2(i)*abs(lc2(i))*aaa
312 hlb1(i)= lb1(i)*abs(lb1(i))*aaa
313 al2(i) = -(xi0*x02(i)+yi0*y02(i)+zi0*z02(i))*aaa
314 al2(i) = max(zero,min(one,al2(i)))
315 aaa = one/max(em30,x03(i)*x03(i)+y03(i)*y03(i)+z03(i)*z03(i))
316 hlc3(i)= lc3(i)*abs(lc3(i))*aaa
317 hlb2(i)= lb2(i)*abs(lb2(i))*aaa
318 al3(i) = -(xi0*x03(i)+yi0*y03(i)+zi0*z03(i))*aaa
319 al3(i) = max(zero,min(one,al3(i)))
320 aaa = one/max(em30,x04(i)*x04(i)+y04(i)*y04(i)+z04(i)*z04(i))
321 hlc4(i)= lc4(i)*abs(lc4(i))*aaa
322 hlb3(i)= lb3(i)*abs(lb3(i))*aaa
323 al4(i) = -(xi0*x04(i)+yi0*y04(i)+zi0*z04(i))*aaa
324 al4(i) = max(zero,min(one,al4(i)))
325C
326 ENDDO
327C
328 DO i=1,jlt
329 x12 = x2(i) - x1(i)
330 y12 = y2(i) - y1(i)
331 z12 = z2(i) - z1(i)
332 la = one - lb1(i) - lc1(i)
333 aaa = one / max(em20,x12*x12+y12*y12+z12*z12)
334 hla= la*abs(la) * aaa
335 IF(la<zero.AND.
336 + hla<=hlb1(i).AND.hla<=hlc1(i))THEN
337 lb1(i) = (xi2(i)*x12+yi2(i)*y12+zi2(i)*z12) * aaa
338 lb1(i) = max(zero,min(one,lb1(i)))
339 lc1(i) = one - lb1(i)
340 ELSEIF(lb1(i)<zero.AND.
341 + hlb1(i)<=hlc1(i).AND.hlb1(i)<=hla)THEN
342 lb1(i) = zero
343 lc1(i) = al2(i)
344 ELSEIF(lc1(i)<zero.AND.
345 + hlc1(i)<=hla.AND.hlc1(i)<=hlb1(i))THEN
346 lc1(i) = zero
347 lb1(i) = al1(i)
348 ENDIF
349 ENDDO
350C
351 DO i=1,jlt
352 x23 = x3(i) - x2(i)
353 y23 = y3(i) - y2(i)
354 z23 = z3(i) - z2(i)
355 la = one - lb2(i) - lc2(i)
356 aaa = one / max(em20,x23*x23+y23*y23+z23*z23)
357 hla= la*abs(la) * aaa
358 IF(la<zero.AND.
359 + hla<=hlb2(i).AND.hla<=hlc2(i))THEN
360 lb2(i) = (xi3(i)*x23+yi3(i)*y23+zi3(i)*z23)*aaa
361 lb2(i) = max(zero,min(one,lb2(i)))
362 lc2(i) = one - lb2(i)
363 ELSEIF(lb2(i)<zero.AND.
364 + hlb2(i)<=hlc2(i).AND.hlb2(i)<=hla)THEN
365 lb2(i) = zero
366 lc2(i) = al3(i)
367 ELSEIF(lc2(i)<zero.AND.
368 + hlc2(i)<=hla.AND.hlc2(i)<=hlb2(i))THEN
369 lc2(i) = zero
370 lb2(i) = al2(i)
371 ENDIF
372 ENDDO
373C
374 DO i=1,jlt
375 x34 = x4(i) - x3(i)
376 y34 = y4(i) - y3(i)
377 z34 = z4(i) - z3(i)
378 la = one - lb3(i) - lc3(i)
379 aaa = one / max(em20,x34*x34+y34*y34+z34*z34)
380 hla= la*abs(la) * aaa
381 IF(la<zero.AND.
382 + hla<=hlb3(i).AND.hla<=hlc3(i))THEN
383 lb3(i) = (xi4(i)*x34+yi4(i)*y34+zi4(i)*z34)*aaa
384 lb3(i) = max(zero,min(one,lb3(i)))
385 lc3(i) = one - lb3(i)
386 ELSEIF(lb3(i)<zero.AND.
387 + hlb3(i)<=hlc3(i).AND.hlb3(i)<=hla)THEN
388 lb3(i) = zero
389 lc3(i) = al4(i)
390 ELSEIF(lc3(i)<zero.AND.
391 + hlc3(i)<=hla.AND.hlc3(i)<=hlb3(i))THEN
392 lc3(i) = zero
393 lb3(i) = al3(i)
394 ENDIF
395 ENDDO
396C
397 DO i=1,jlt
398 x41 = x1(i) - x4(i)
399 y41 = y1(i) - y4(i)
400 z41 = z1(i) - z4(i)
401 la = one - lb4(i) - lc4(i)
402 aaa = one / max(em20,x41*x41+y41*y41+z41*z41)
403 hla= la*abs(la) * aaa
404 IF(la<zero.AND.
405 + hla<=hlb4(i).AND.hla<=hlc4(i))THEN
406 lb4(i) = (xi1(i)*x41+yi1(i)*y41+zi1(i)*z41)*aaa
407 lb4(i) = max(zero,min(one,lb4(i)))
408 lc4(i) = one - lb4(i)
409 ELSEIF(lb4(i)<zero.AND.
410 + hlb4(i)<=hlc4(i).AND.hlb4(i)<=hla)THEN
411 lb4(i) = zero
412 lc4(i) = al1(i)
413 ELSEIF(lc4(i)<zero.AND.
414 + hlc4(i)<=hla.AND.hlc4(i)<=hlb4(i))THEN
415 lc4(i) = zero
416 lb4(i) = al4(i)
417 ENDIF
418 ENDDO
419
420C
421C
422C
423C
424 DO i=1,jlt
425C
426 nx1(i) = xi(i)-(x0(i) + lb1(i)*x01(i) + lc1(i)*x02(i))
427 ny1(i) = yi(i)-(y0(i) + lb1(i)*y01(i) + lc1(i)*y02(i))
428 nz1(i) = zi(i)-(z0(i) + lb1(i)*z01(i) + lc1(i)*z02(i))
429 p1(i) = nx1(i)*nx1(i) + ny1(i)*ny1(i) +nz1(i)*nz1(i)
430 d1 = max(zero, gap2(i) - p1(i))
431C
432 nx2(i) = xi(i)-(x0(i) + lb2(i)*x02(i) + lc2(i)*x03(i))
433 ny2(i) = yi(i)-(y0(i) + lb2(i)*y02(i) + lc2(i)*y03(i))
434 nz2(i) = zi(i)-(z0(i) + lb2(i)*z02(i) + lc2(i)*z03(i))
435 p2(i) = nx2(i)*nx2(i) + ny2(i)*ny2(i) +nz2(i)*nz2(i)
436 d2 = max(zero, gap2(i) - p2(i))
437C
438 nx3(i) = xi(i)-(x0(i) + lb3(i)*x03(i) + lc3(i)*x04(i))
439 ny3(i) = yi(i)-(y0(i) + lb3(i)*y03(i) + lc3(i)*y04(i))
440 nz3(i) = zi(i)-(z0(i) + lb3(i)*z03(i) + lc3(i)*z04(i))
441 p3(i) = nx3(i)*nx3(i) + ny3(i)*ny3(i) +nz3(i)*nz3(i)
442 d3 = max(zero, gap2(i) - p3(i))
443C
444 nx4(i) = xi(i)-(x0(i) + lb4(i)*x04(i) + lc4(i)*x01(i))
445 ny4(i) = yi(i)-(y0(i) + lb4(i)*y04(i) + lc4(i)*y01(i))
446 nz4(i) = zi(i)-(z0(i) + lb4(i)*z04(i) + lc4(i)*z01(i))
447 p4(i) = nx4(i)*nx4(i) + ny4(i)*ny4(i) +nz4(i)*nz4(i)
448 d4 = max(zero, gap2(i) - p4(i))
449C !!!!!!!!!!!!!!!!!!!!!!!
450C PENE = GAP^2 - DIST^2 UTILISE POUR TESTER SI NON NUL
451C!!!!!!!!!!!!!!!!!!!!!!!!
452 pene(i) = max(d1,d2,d3,d4)
453C
454 ENDDO
455 ENDIF
456C
457 RETURN
458 END
459C===============================================================================
subroutine i7pen3(jlt, marge, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, pene, ix1, ix2, ix3, ix4, igap, gap, gapv)
Definition i7pen3.F:37
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21