39 1 X ,IRECT,NSV ,BUMULT,NSEG ,
40 2 NMN ,NRTM ,MWA ,NSN ,CAND_E ,
41 3 CAND_N,GAP ,XYZM ,NOINT ,I_STOK ,
42 4 DIST ,TZINF,MAXBOX ,MINBOX,MSR ,
43 5 STF ,STFN ,MULTIMP,ISTF ,IDDLEVEL,
44 6 ITAB ,GAP_S,GAP_M ,IGAP ,GAPMIN ,
45 7 GAPMAX,INACTI,GAP_S_L,GAP_M_L,I_MEM ,
46 8 ID ,TITR,IT19,PROV_N,PROV_E,
47 9 NSVG,IX1 ,IX2 ,IX3 ,IX4 ,
48 1 N11 ,N12 ,N13 ,PENE ,X1 ,
49 2 X2 ,X3 ,X4 ,Y1 ,Y2 ,
50 3 Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,
51 4 Z4 ,XI ,YI ,ZI ,X0 ,
52 5 Y0 ,Z0 ,NX1 ,NY1 ,NZ1 ,
53 6 NX2 ,NY2 ,NZ2 ,NX3 ,NY3 ,
54 7 NZ3 ,NX4 ,NY4 ,NZ4 ,P1 ,
55 8 P2 ,P3 ,P4 ,LB1 ,LB2 ,
56 9 LB3 ,LB4 ,LC1 ,LC2 ,LC3 ,
66#include "implicit_f.inc"
76#include "vect07_c.inc"
81 INTEGER NMN, NRTM, NSN, NOINT,I_STOK,MULTIMP,ISTF,IGAP,
83 INTEGER IRECT(4,*),NSV(*),NSEG(*),MWA(*)
84 INTEGER CAND_E(*),CAND_N(*),MSR(*),MAXSIZ,IDDLEVEL
87 . STF(*),STFN(*),X(3,*),XYZM(6,*),GAP_S(*),GAP_M(*),
88 . DIST,BUMULT,GAP,TZINF,MAXBOX,MINBOX,GAPMIN,GAPMAX,
89 . GAP_S_L(*),GAP_M_L(*)
91 CHARACTER(LEN=NCHARTITLE) :: TITR
92 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: PROV_N,PROV_E,NSVG
93 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: IX1,IX2,IX3,IX4
94 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: N11,N12,N13,PENE
95 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: X1,X2,X3,X4
96 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: Y1,Y2,Y3,Y4
97 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: Z1,Z2,Z3,Z4
98 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: XI,YI,ZI
99 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: X0,Y0,Z0
100 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: nx1,ny1,nz1
101 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: nx2,ny2,nz2
102 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: nx3,ny3,nz3
103 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: nx4,ny4,nz4
104 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: p1,p2,p3,p4
105 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: lb1,lb2,lb3,lb4
106 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: lc1,lc2,lc3,lc4,stif
110 INTEGER I, J, L, N1, N2, N3, N4, I_AMAX,I_MEM
111 INTEGER I_ADD, ADESTK, NB_NC, NB_EC, ADNSTK, IBID
112 INTEGER IP1, IP2, IP21, IP22, IP31,J_STOK,I_BID,NB_N_B
118 . dd1,dd2,dd3,dd4,dd,dd0,xmin,ymin,zmin,tb,
119 . xmax,
ymax,zmax,minbox_st,maxbox_st,gapsmax,
120 . bid,tzinf_st,marge,marge_st,gapv(mvsiz),
121 . xmax_m,ymax_m,zmax_m,xmin_m,ymin_m,zmin_m,
122 . xmax_s,ymax_s,zmax_s,xmin_s,ymin_s,zmin_s
129 IF(inacti==7)type18=.true.
142 dx1=(x(1,n1)-x(1,n2))
144 dz1=(x(3,n1)-x(3,n2))
145 dd1=sqrt(dx1**2+dy1**2+dz1**2)
147 dx3=(x(1,n1)-x(1,n4))
148 dy3=(x(2,n1)-x(2,n4))
149 dz3=(x(3,n1)-x(3,n4))
150 dd2=sqrt(dx3**2+dy3**2+dz3**2)
152 dx4=(x(1,n3)-x(1,n2))
153 dy4=(x(2,n3)-x(2,n2))
154 dz4=(x(3,n3)-x(3,n2))
155 dd3=sqrt(dx4**2+dy4**2+dz4**2)
157 dx6=(x(1,n4)-x(1,n3))
158 dy6=(x(2,n4)-x(2,n3))
159 dz6=(x(3,n4)-x(3,n3))
160 dd4=sqrt(dx6**2+dy6**2+dz6**2)
161 dd=dd+ (dd1+dd2+dd3+dd4)
177 IF(iddlevel==0) marge_st = marge
178 tzinf_st = marge_st + gap
181 maxbox= half*(dd + 2*tzinf)
183 maxbox_st= half*(dd + 2*tzinf_st)
184 minbox_st= half*maxbox_st
200 xmin_m=
min(xmin_m,x(1,j))
201 ymin_m=
min(ymin_m,x(2,j))
202 zmin_m=
min(zmin_m,x(3,j))
203 xmax_m=
max(xmax_m,x(1,j))
204 ymax_m=
max(ymax_m,x(2,j))
205 zmax_m=
max(zmax_m,x(3,j))
217 xmin_s=
min(xmin_s,x(1,j))
218 ymin_s=
min(ymin_s,x(2,j))
219 zmin_s=
min(zmin_s,x(3,j))
220 xmax_s=
max(xmax_s,x(1,j))
221 ymax_s=
max(ymax_s,x(2,j))
222 zmax_s=
max(zmax_s,x(3,j))
225 xmin=
min(xmin_m-tzinf_st,xmin_s)
226 ymin=
min(ymin_m-tzinf_st,ymin_s)
227 zmin=
min(zmin_m-tzinf_st,zmin_s)
228 xmax=
max(xmax_m+tzinf_st,xmax_s)
229 ymax=
max(ymax_m+tzinf_st,ymax_s)
230 zmax=
max(zmax_m+tzinf_st,zmax_s)
260 maxsiz =
max(numnod,nrtm+100)
311 1 mwa(ip1) ,mwa(ip2) ,mwa
313 3 i_add ,nsv ,i_amax ,xmax ,
ymax ,
314 4 zmax ,3*maxsiz ,i_stok ,i_mem ,nb_n_b ,
315 5 cand_n ,cand_e ,nsn ,noint ,tzinf_st ,
316 6 maxbox_st,minbox_st,stf ,stfn ,j_stok ,
317 7 multimp ,istf , itab ,gap ,gap_s ,
318 8 gap_m ,igap ,gapmin ,gapmax ,marge_st ,
319 9 gap_s_l ,gap_m_l ,id ,titr ,
320 1 ix1 ,ix2 ,ix3,ix4 ,nsvg ,
321 2 prov_n ,prov_e ,n11,n12 ,n13 ,
322 3 pene ,x1 ,x2 ,x3 ,x4 ,
323 4 y1 ,y2 ,y3 ,y4 ,z1 ,
324 5 z2 ,z3 ,z4 ,xi ,yi ,
325 6 zi ,x0 ,y0 ,z0 ,nx1 ,
326 7 ny1 ,nz1 ,nx2,ny2 ,nz2 ,
327 8 nx3 ,ny3 ,nz3,nx4 ,ny4 ,
329 1 lb1 ,lb2 ,lb3,lb4 ,lc1 ,
330 2 lc2 ,lc3 ,lc4,stif)
341 ELSE IF(i_mem==2)
THEN
342 marge_st = three_over_4*marge_st
343 tzinf_st = marge_st + gap
345 IF(marge_st<em03)
THEN
357 IF(i_add/=0)
GO TO 200
363 CALL i7cor3(x ,irect,nsv ,prov_e ,prov_n,
364 . stf ,stfn ,gapv ,igap ,gap ,
365 . gap_s,gap_m,istf ,gapmin ,gapmax,
366 . gap_s_l,gap_m_l ,zero ,ix1 ,ix2 ,
367 5 ix3 ,ix4 ,nsvg,x1 ,x2 ,
368 6 x3 ,x4 ,y1 ,y2 ,y3 ,
369 7 y4 ,z1 ,z2 ,z3 ,z4 ,
370 8 xi ,yi ,zi ,stif ,zero ,
372 CALL i7dst3(ix3,ix4,x1 ,x2 ,x3 ,
373 1 x4 ,y1 ,y2 ,y3 ,y4 ,
374 2 z1 ,z2 ,z3 ,z4 ,xi ,
375 3 yi ,zi ,x0 ,y0 ,z0 ,
376 4 nx1,ny1,nz1,nx2,ny2,
377 5 nz2,nx3,ny3,nz3,nx4,
378 6 ny4,nz4,p1 ,p2 ,p3 ,
379 7 p4 ,lb1,lb2,lb3,lb4,
380 8 lc1,lc2,lc3,lc4,llt)
381 CALL i7pen3(marge_st,gapv,n11,n12,n13 ,
382 1 pene ,nx1 ,ny1,nz1,nx2,
383 2 ny2 ,nz2 ,nx3,ny3,nz3,
384 3 nx4 ,ny4 ,nz4,p1 ,p2 ,
386 IF(i_stok+j_stok<multimp*nsn)
THEN
387 CALL i7cmp3(i_stok,cand_e ,cand_n,1,pene,
391 CALL i7cmp3(i_bid,cand_e,cand_n,0,pene,
393 IF(i_stok+i_bid<multimp*nsn)
THEN
394 CALL i7cmp3(i_stok,cand_e,cand_n,1,pene,
399 marge_st = three_over_4*marge_st
400 tzinf_st = marge_st + gap
405 IF(marge_st<em03)
THEN
421 IF ((nsn/=0).AND.(it19<=0))
THEN
422 WRITE(iout,*)
' POSSIBLE IMPACT NUMBER:',i_stok,
' (<=', 1+(i_stok-1)/nsn,
'*NSN)'
425 . msgtype=msgwarning,
426 . anmode=aninfo_blind_2,
435 DO i=1,numnod+numfakenodigeo
subroutine i7buc1(x, irect, nsv, bumult, nseg, nmn, nrtm, mwa, nsn, cand_e, cand_n, gap, xyzm, noint, i_stok, dist, tzinf, maxbox, minbox, msr, stf, stfn, multimp, istf, iddlevel, itab, gap_s, gap_m, igap, gapmin, gapmax, inacti, gap_s_l, gap_m_l, i_mem, id, titr, it19, prov_n, prov_e, nsvg, ix1, ix2, ix3, ix4, n11, n12, n13, pene, 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, stif)
subroutine i7cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m, istf, gapmin, gapmax, gap_s_l, gap_m_l, drad, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, dgapload, last)
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 i7tri(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, stf, stfn, j_stok, multimp, istf, itab, gap, gap_s, gap_m, igap, gapmin, gapmax, marge, gap_s_l, gap_m_l, id, titr, ix1, ix2, ix3, ix4, nsvg, prov_n, prov_e, n11, n12, n13, pene, 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, stif)
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)