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,DBUC,
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) :: ,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
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,IPOS,I,IP,J
108 INTEGER INF,SUP,DIR,N1,N2,N3,N4,NN,NE
111 . bid,dx,dy,dz,dsup,seuil,xmx
180 IF(nb_ec==0.OR.nb_nc==0)
THEN
184 CALL i7dstk(i_add,nb_nc,nb_ec,add,bpn,pn,bpe,pe)
190 dx = xyzm(4,i_add) - xyzm(1,i_add)
191 dy = xyzm(5,i_add) - xyzm(2,i_add)
192 dz = xyzm(6,i_add) - xyzm(3,i_add)
195 IF(add(2,1)+nb_ec>=maxsiz)
THEN
197 IF ( nb_n_b == numnod)
THEN
201 IF (istamping == 1)
THEN
219 . nb_nc<=nb_n_b.AND.dsup<maxbox.OR.
220 . nb_nc<=nb_n_b.AND.nb_ec==1)
THEN
233 IF(nn/=n1.AND.nn/=n2.AND.nn/=n3.AND.nn/=n4)
THEN
235 prov_n(j_stok) = bpn(j)
237 IF(j_stok==nvsiz)
THEN
242 CALL i23cor3t(x ,irect,nsv ,prov_e ,prov_n,
243 2 gapv ,igap ,gap ,gap_s,gapmin ,
244 3 gapmax,msr ,gap_m ,ix1 ,ix2 ,
245 4 ix3 ,ix4 ,nsvg ,x1 ,x2 ,
246 5 x3 ,x4 ,y1 ,y2 ,y3 ,
247 6 y4 ,z1 ,z2 ,z3 ,z4 ,
249 CALL i7dst3(ix3,ix4,x1 ,x2 ,x3 ,
250 1 x4 ,y1 ,y2 ,y3 ,y4 ,
251 2 z1 ,z2 ,z3 ,z4 ,xi ,
252 3 yi ,zi ,x0 ,y0 ,z0 ,
253 4 nx1,ny1,nz1,nx2,ny2,
254 5 nz2,nx3,ny3,nz3,nx4,
255 6 ny4,nz4,p1 ,p2 ,p3 ,
256 7 p4 ,lb1,lb2,lb3,lb4,
257 8 lc1,lc2,lc3,lc4,llt)
258 CALL i7pen3(marge,gapv,n11,n21,n31,
259 1 pene ,nx1 ,ny1,nz1,nx2,
260 2 ny2 ,nz2 ,nx3,ny3,nz3,
261 3 nx4 ,ny4 ,nz4,p1 ,p2 ,
263 IF(i_stok+nvsiz<multimp*nsn)
THEN
264 CALL i7cmp3(i_stok,cand_e ,cand_n,1,pene,
268 CALL i7cmp3(i_bid,cand_e,cand_n,0,pene,
270 IF(i_stok+i_bid<multimp*nsn)
THEN
271 CALL i7cmp3(i_stok,cand_e,cand_n,1,pene,
280 . msgtype=msgwarning,
281 . anmode=aninfo_blind_2,
294 CALL i7dstk(i_add,nb_nc,nb_ec,add,bpn,pn,bpe,pe)
312 ELSE IF(dz==dsup)
THEN
315 seuil =(xyzm(dir+3,i_add)+xyzm(dir,i_add))/2
325 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
341 IF(x(dir,nsv(bpn(i)))<seuil)
THEN
345 gapsmx =
max(gapsmx,gap_s(bpn(i)))
351 bgapsmx =
max(bgapsmx,gap_s(bpn(i)))
401 xmx=
max(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 xmn=
min(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i
405 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
407 IF(xmn<seuil.AND.inf==1)
THEN
412 IF(xmx>=seuil.AND.sup==1)
THEN
420 xmn=
min(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
421 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
422 - -sqrt(three)*
min(
max(gapsmx+gap_m(bpe(i)),gapmin),gapmax)
424 IF(xmn<seuil.AND.inf==1)
THEN
429 xmx=
max(x(dir,irect(1,bpe(i))),x(dir,irect(2,bpe(i))),
430 . x(dir,irect(3,bpe(i))),x(dir,irect(4,bpe(i))))
431 + +sqrt(three)*
min(
max(bgapsmx+gap_m(bpe(i)),gapmin),gapmax)
433 IF(xmx>=seuil.AND.sup==1)
THEN
451 xyzm(1,i_add+1) = xyzm(1,i_add)
452 xyzm(2,i_add+1) = xyzm(2,i_add)
453 xyzm(3,i_add+1) = xyzm(3,i_add)
454 xyzm(4,i_add+1) = xyzm(4,i_add)
455 xyzm(5,i_add+1) = xyzm(5,i_add)
456 xyzm(6,i_add+1) = xyzm(6,i_add)
457 xyzm(dir,i_add+1) = seuil
458 xyzm(dir+3,i_add) = seuil
466 IF ( nb_n_b == numnod)
THEN
470 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)