38 1 BPE ,PE ,BPN ,PN ,ADD ,
39 2 IRECT ,X ,NB_NC ,NB_EC ,XYZM ,
40 3 I_ADD ,NSV ,I_AMAX,XMAX ,YMAX ,
41 4 ZMAX ,MAXSIZ,I_STOK,I_MEM ,NB_N_B,
42 5 CAND_N ,CAND_E,NSN ,NOINT ,TZINF ,
43 6 MAXBOX ,MINBOX,J_STOK,MSR ,
44 7 MULTIMP,ITAB ,GAP ,GAP_S ,IGAP ,
45 8 GAPMIN,GAPMAX,MARGE ,ID ,TITR ,
46 9 GAP_M ,PROV_N,PROV_E ,IX1,IX2,
47 1 IX3 ,IX4 ,NSVG ,X1 ,X2 ,
48 2 X3 ,X4 ,Y1 ,Y2 ,Y3 ,
49 3 Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
50 4 XI ,YI ,ZI ,X0 ,Y0 ,
51 5 Z0 ,NX1 ,NY1 ,NZ1,NX2,
52 6 NY2 ,NZ2 ,NX3 ,NY3,NZ3,
53 7 NX4 ,NY4 ,NZ4 ,P1 ,P2 ,
54 8 P3 ,P4 ,LB1 ,LB2,LB3,
55 9 LB4 ,LC1 ,LC2 ,LC3,LC4,
56 1 N11 ,N21 ,N31 ,PENE)
62#include "implicit_f.inc"
73#include "vect07_c.inc"
77 INTEGER NB_NC,NB_EC,I_ADD,MAXSIZ,I_STOK,J_STOK,I_MEM
78 INTEGER I_BID, I_AMAX,NB_N_B, NOINT, NSN,MULTIMP, IGAP
79 INTEGER ADD(2,0:*),IRECT(4,*),BPE(*),PE(*),BPN(*),PN(*)
80 INTEGER NSV(*),CAND_N(*),CAND_E(*), ITAB(*), MSR(*)
83 . X(3,*),XYZM(6,*),TZINF,
84 . MAXBOX,MINBOX, XMAX, YMAX, ZMAX,
85 . GAP, GAP_S(*), GAP_M(*),
86 . GAPMIN, GAPMAX, MARGE, GAPSMX, BGAPSMX
88 CHARACTER(LEN=NCHARTITLE) :: TITR
89 INTEGER,
DIMENSION(MVSIZ),
INTENT(INOUT) ::PROV_N,PROV_E
90 INTEGER,
DIMENSION(MVSIZ),
INTENT(INOUT) :: IX1,IX2,IX3,IX4,NSVG
91 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X1,X2,X3,X4
92 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Y1,Y2,Y3,Y4
93 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Z1,Z2,Z3,Z4
94 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: XI,YI,ZI
95 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X0,Y0,Z0
96 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: n11,n21,n31,pene
97 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx1,ny1,nz1
98 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx2,ny2,nz2
99 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx3,ny3,nz3
100 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx4,ny4,nz4
101 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: p1,p2,p3,p4
102 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: lb1,lb2,lb3,lb4
103 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: lc1,lc2,lc3,lc4
107 INTEGER NB_NCN, NB_ECN, ADDNN, ADDNE, I, J
108 INTEGER INF,SUP,DIR,N1,N2,N3,N4,NN,NE
111 . dx,dy,dz,dsup,seuil,xmx,xmn,
177 IF(nb_ec==0.OR.nb_nc==0)
THEN
181 CALL i7dstk(i_add,nb_nc,nb_ec,add,bpn,pn,bpe,pe)
187 dx = xyzm(4,i_add) - xyzm(1,i_add)
188 dy = xyzm(5,i_add) - xyzm(2,i_add)
189 dz = xyzm(6,i_add) - xyzm(3,i_add)
192 IF(add(2,1)+nb_ec>=maxsiz)
THEN
194 IF ( nb_n_b == numnod)
THEN
198 IF (istamping == 1)
THEN
216 . nb_nc<=nb_n_b.AND.dsup<maxbox.OR.
217 . nb_nc<=nb_n_b.AND.nb_ec==1)
THEN
230 IF(nn/=n1.AND.nn/=n2.AND.nn/=n3.AND.nn/=n4)
THEN
232 prov_n(j_stok) = bpn(j)
234 IF(j_stok==nvsiz)
THEN
239 CALL i23cor3t(x ,irect,nsv ,prov_e ,prov_n,
240 2 gapv ,igap ,gap ,gap_s,gapmin ,
241 3 gapmax,msr ,gap_m ,ix1 ,ix2 ,
242 4 ix3 ,ix4 ,nsvg ,x1 ,x2 ,
243 5 x3 ,x4 ,y1 ,y2 ,y3 ,
244 6 y4 ,z1 ,z2 ,z3 ,z4 ,
246 CALL i7dst3(ix3,ix4,x1 ,x2 ,x3 ,
247 1 x4 ,y1 ,y2 ,y3 ,y4 ,
248 2 z1 ,z2 ,z3 ,z4 ,xi ,
249 3 yi ,zi ,x0 ,y0 ,z0 ,
251 5 nz2,nx3,ny3,nz3,nx4,
252 6 ny4,nz4,p1 ,p2 ,p3 ,
253 7 p4 ,lb1,lb2,lb3,lb4,
254 8 lc1,lc2,lc3,lc4,llt)
255 CALL i7pen3(marge,gapv,n11,n21,n31,
256 1 pene ,nx1 ,ny1,nz1,nx2,
257 2 ny2 ,nz2 ,nx3,ny3,nz3,
258 3 nx4 ,ny4 ,nz4,p1 ,p2 ,
260 IF(i_stok+nvsiz<multimp*nsn)
THEN
261 CALL i7cmp3(i_stok,cand_e ,cand_n,1,pene,
265 CALL i7cmp3(i_bid,cand_e,cand_n,0,pene,
267 IF(i_stok+i_bid<multimp*nsn)
THEN
268 CALL i7cmp3(i_stok,cand_e,cand_n,1,pene,
277 . msgtype=msgwarning,
278 . anmode=aninfo_blind_2,
291 CALL i7dstk(i_add,nb_nc,nb_ec,add,bpn,pn,bpe,pe)
309 ELSE IF(dz==dsup)
THEN
312 seuil =(xyzm(dir+3,i_add)+xyzm(dir,i_add))/2
322 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
338 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
342 gapsmx =
max(gapsmx,gap_s(bpn(i)))
348 bgapsmx =
max(bgapsmx,gap_s(bpn(i)))
398 xmx=
max(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
399 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
401 xmn=
min(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
402 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
404 IF(xmn<seuil.AND.inf==1)
THEN
409 IF(xmx>=seuil.AND.sup==1)
THEN
417 xmn=
min(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
418 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
419 - -sqrt(three)*
min(
max(gapsmx+gap_m(bpe(i)),gapmin),gapmax)
421 IF(xmn<seuil.AND.inf==1)
THEN
426 xmx=
max(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
427 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
428 + +sqrt(three)*
min(
max(bgapsmx+gap_m(bpe(i)),gapmin),gapmax)
430 IF(xmx>=seuil.AND.sup==1)
THEN
448 xyzm(1,i_add+1) = xyzm(1,i_add)
449 xyzm(2,i_add+1) = xyzm(2,i_add)
450 xyzm(3,i_add+1) = xyzm(3,i_add)
451 xyzm(4,i_add+1) = xyzm(4,i_add)
452 xyzm(5,i_add+1) = xyzm(5,i_add)
453 xyzm(6,i_add+1) = xyzm(6,i_add)
454 xyzm(dir,i_add+1) = seuil
455 xyzm(dir+3,i_add) = seuil
463 IF ( nb_n_b == numnod)
THEN
467 IF (istamping == 1)
THEN
subroutine i23tri(bpe, pe, bpn, pn, add, irect, x, nb_nc, nb_ec, xyzm, i_add, nsv, i_amax, xmax, ymax, zmax, maxsiz, i_stok, i_mem, nb_n_b, cand_n, cand_e, nsn, noint, tzinf, maxbox, minbox, j_stok, msr, multimp, itab, gap, gap_s, igap, gapmin, gapmax, marge, id, titr, gap_m, prov_n, prov_e, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, n11, n21, n31, pene)
subroutine i7dst3(ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, last)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)