37 1 X ,IRECT ,NSV ,INACTI ,
38 2 NRTM ,NSN ,CAND_E ,CAND_N ,GAP ,
39 3 NOINT ,II_STOK ,TZINF , MAXBOX ,MINBOX ,
40 4 NCONTACT ,XMIN ,XMAX ,YMIN ,
41 5 YMAX ,ZMIN ,ZMAX ,NB_N_B ,ESHIFT ,
42 6 ILD ,INIT ,WEIGHT ,STFN ,NIN ,
43 7 STF ,IGAP ,GAP_S ,GAPMIN ,GAPMAX ,
44 8 ICURV ,NUM_IMP ,XM0 ,NOD_NORMAL,
45 9 DEPTH ,MARGEREF,LXM ,LYM ,LZM ,
46 A NRTM_L ,XLOC ,I_MEM ,DRAD ,NMN ,
47 B INTTH ,MNDD ,MSR_L ,ITASK ,IRECTT ,
58#include
"implicit_f.inc"
69 INTEGER NRTM, NSN, NOINT,IDT,INACTI,NIN,NRTM_L,NMN, IFORM
70 INTEGER IRECT(4,*), NSV(*), NUM_IMP,MSR_L(*),MNDD(*)
71 INTEGER CAND_E(*),CAND_N(*)
72 INTEGER NCONTACT,ESHIFT,ILD,INIT,NB_N_B, IGAP,ICURV,
73 . WEIGHT(*),II_STOK,INTTH,ITASK,IRECTT(4,*)
76 . GAP,TZINF,MAXBOX,MINBOX,
77 . XMAX, YMAX, ZMAX, XMIN, YMIN, ZMIN, GAPMIN, GAPMAX, DEPTH,
78 . MARGEREF, LXM, LYM, LZM
80 my_real ,
INTENT(IN) :: DGAPLOAD , DRAD
82 . x(3,*), stfn(*), stf(*), gap_s(*),
83 . xm0(3,*), nod_normal(3,*), xloc(3,*)
88 PARAMETER (I_ADD_MAX = 1001)
90 INTEGER I, J, I_MEM, I_ADD, IP0, IP1, MAXSIZ,II,
91 . ADD(2,I_ADD_MAX), N,L,PP,J_STOK,IAD(NSPMD),
92 . tag(nmn),nm(4), ierror1,nodfi,ptr, ierror2, ierror3,
100 . xxx,yyy,zzz,curv_max(nrtm),curv_max_max, marge
108 xxx=
max(xm0(1,irect(1,i)),xm0(1,irect(2,i)),
109 . xm0(1,irect(3,i)),xm0(1,irect(4,i)))
110 . -
min(xm0(1,irect(1,i)),xm0(1,irect(2,i)),
111 . xm0(1,irect(3,i)),xm0(1,irect(4,i)))
112 yyy=
max(xm0(2,irect(1,i)),xm0(2,irect(2,i)),
113 . xm0(2,irect(3,i)),xm0(2,irect(4,i)))
114 . -
min(xm0(2,irect(1,i)),xm0(2,irect(2,i)),
115 . xm0(2,irect(3,i)),xm0(2,irect(4,i)))
116 zzz=
max(xm0(3,irect(1,i)),xm0(3,irect(2,i)),
117 . xm0(3,irect(3,i)),xm0(3,irect(4,i)))
118 . -
min(xm0(3,irect(1,i)),xm0(3,irect(2,i)),
119 . xm0(3,irect(3,i)),xm0(3,irect(4,i)))
120 curv_max(i) = half *
max(xxx,yyy,zzz)
121 curv_max_max =
max(curv_max_max,curv_max(i))
134 IF (debug(3)>=1)
THEN
136 WRITE(istdo,*)
'** NEW SORT FOR INTERFACE NUMBER ',noint,
137 .
' AT CYCLE ',ncycle
138 WRITE(iout,*)
'** NEW SORT FOR INTERFACE NUMBER ',noint,
139 .
' AT CYCLE ',ncycle
140#include "lockoff.inc"
156 IF(stfn(i)/=zero)
THEN
157 xmin=
min(xmin,xloc(1,i))
158 ymin=
min(ymin,xloc(2,i))
159 zmin=
min(zmin,xloc(3,i))
160 xmax=
max(xmax,xloc(1,i))
161 ymax=
max(ymax,xloc(2,i
162 zmax=
max(zmax,xloc(3,i))
173 IF(abs(zmax-zmin)>2*ep30.OR.
174 + abs(ymax-ymin)>2*ep30.OR.
175 + abs(xmax-xmin)>2*ep30)
THEN
176 IF (istamping == 1)
THEN
177 CALL ancmsg(msgid=101,anmode=aninfo,
180 CALL ancmsg(msgid=87,anmode=aninfo,
181 . i1=noint,c1=
'(I21BUCE)')
198 yyy=xm0(2,irect(j,i))
199 zzz=xm0(3,irect(j,i))
200 IF(xmin <= xxx .AND. xxx <= xmax .AND.
201 . ymin <= yyy .AND. yyy <= ymax .AND.
202 . zmin <= zzz .AND. zzz <= zmax)
THEN
230 maxsiz = 3*(nrtm_l+100)
259 marge = tzinf -
max(depth,gap + dgapload,drad)
261 1 add ,nsn ,irect ,xloc ,stf_l ,
262 2 stfn ,xyzm ,i_add ,maxsiz ,ii_stok ,
263 3 cand_n ,cand_e ,ncontact ,noint ,tzinf ,
264 4 maxbox ,minbox ,i_mem ,nb_n_b ,i_add_max,
265 5 eshift ,inacti ,nrtm ,igap ,gap ,
266 6 gap_s ,gapmin ,gapmax ,marge ,curv_max ,
267 7 xm0 ,nod_normal,depth ,drad ,dgapload )
269 IF (i_mem == 2)
RETURN
276 IF ( nb_n_b > nsn)
THEN
277 IF (istamping == 1)
THEN
278 CALL ancmsg(msgid=101,anmode=aninfo,
281 CALL ancmsg(msgid=85,anmode=aninfo,
287 ELSEIF(i_mem==2)
THEN
291 WRITE(istdo,*)' **warning interface/memory
'
292 WRITE(IOUT,*)' **warning
INTERFACE nb:
',NOINT
293 WRITE(IOUT,*)' too many possible impacts
'
294 WRITE(IOUT,*)' SIZE of influence zone is
'
295 WRITE(IOUT,*)' multiplied by 0.75
'
296#include "lockoff.inc"
298 TZINF = THREE_OVER_4*TZINF
299 MINBOX= THREE_OVER_4*MINBOX
300 MAXBOX= THREE_OVER_4*MAXBOX
301 IF( TZINF<=MAX(DEPTH,GAP+ DGAPLOAD,DRAD) ) THEN
302 IF (ISTAMPING == 1)THEN
303 CALL ANCMSG(MSGID=101,ANMODE=ANINFO,
306 CALL ANCMSG(MSGID=98,ANMODE=ANINFO,
314 IF ( NB_N_B > NSN) THEN
315 IF (ISTAMPING == 1)THEN
316 CALL ANCMSG(MSGID=101,ANMODE=ANINFO,
319 CALL ANCMSG(MSGID=99,ANMODE=ANINFO,
subroutine i21buce(x, irect, nsv, inacti, nrtm, nsn, cand_e, cand_n, gap, noint, ii_stok, tzinf, maxbox, minbox, ncontact, xmin, xmax, ymin, ymax, zmin, zmax, nb_n_b, eshift, ild, init, weight, stfn, nin, stf, igap, gap_s, gapmin, gapmax, icurv, num_imp, xm0, nod_normal, depth, margeref, lxm, lym, lzm, nrtm_l, xloc, i_mem, drad, nmn, intth, mndd, msr_l, itask, irectt, iform, dgapload)
subroutine i21tri(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, xm0, multimp, itab, gap, gap_s, igap, gapmin, gapmax, marge, depth, drad, id, titr, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, stif, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, pene, prov_n, prov_e, n11, n21, n31, dgapload)
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)