64
65
66
68 USE intbufdef_mod
72
73
74
75#include "implicit_f.inc"
76
77
78
79#include "mvsiz_p.inc"
80
81
82
83#include "com04_c.inc"
84#include "param_c.inc"
85#include "scr03_c.inc"
86#include "scr12_c.inc"
87#include "units_c.inc"
88#include "vect07_c.inc"
89
90
91
92 INTEGER INTERFACE_ID, IWRN, NSNT, NMNT,SIXINT,
93 . NSNET ,NMNET, INPENE,IWPENTOT
94 INTEGER IXS(NIXS,*), IXC(NIXC,*),
95 . IPARI(*), IXT(NIXT,*) ,IXP(NIXP,*) ,IXR(NIXR,*),
96 . ITAB(*), MWA(*), IXTG(NIXTG,*), IKINE(*),
97 . NELEMINT, IDDLEVEL,,
98 . IWCONT(*),
99 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
100 . NOD2ELS(*), NOD2ELC(*), NOD2ELTG(*),
101 . IPART(*),IPARTC(*), IPARTTG(*),IXS10(*),I_MEM,
102 . IXS16(*), IXS20(*),KXX(*),IXX(*), IGEO(NPROPGI,*),
103 . NOD2EL1D(*), KNOD2EL1D(*),IWORKSH(3,*)
104 INTEGER IKINE1(*)
105 INTEGER, INTENT(in) :: NSPMD
106
108 . x(*), pm(*), geo(*), ms(*),rwa(6,*),
109 . thk(*),thk_part(*),lelx(*),pm_stack(3,*)
110 TYPE(INTBUF_STRUCT_) INTBUF_TAB
111
112 INTEGER ID
113 CHARACTER(LEN=NCHARTITLE) :: TITR
114 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
115 TYPE(INTER_CAND_), INTENT(inout) :: INTER_CAND
116
117
118
119 INTEGER NRTS, NRTM, NSN, NMN, NMN0, NTY, NST, MST, IBUC, NOINT,
120 . NSNE, NMNE,NLINS,NLINM,NLN,IWPENE,IWPENEDGE,
121 . I, I_STOK,I_STOK_E,IRS,IRM,ILEV,IDEL2,
122 . NSEG, NGROUS, NG, INACTI,
123 . JLT_NEW,IGAP,MULTIMP,ISEARCH,ITIED,
124 . IGN,IGE,NME,NMES,NAD,EAD,ISU1,ISU2,
125 . INTTH,NLINSA,NLINMA,ISS2,IFS2,ISYM
126 integer
127 . n1(mvsiz),n2(mvsiz),m1(mvsiz),m2(mvsiz)
128 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG
129
131 . maxbox,minbox,gap0,bid,tzinf,gapinf,gap_tri,gapshmax,gapmax0,
132 . gapinfs,gapinfm,gape,gapinput,fpenmax,drad
133 my_real :: gap,gapmin,gapmax,dgapload
135 . nx(mvsiz),ny(mvsiz),nz(mvsiz),gapv(mvsiz),xanew(3,numnod)
137 . , DIMENSION(:,:), ALLOCATABLE :: solidn_normal
138
139 INTEGER, DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4
140 INTEGER, DIMENSION(MVSIZ) :: PROV_N,PROV_E,NSVG
141 my_real,
DIMENSION(MVSIZ) :: x1,x2,x3,x4
142 my_real,
DIMENSION(MVSIZ) :: y1,y2,y3,y4
143 my_real,
DIMENSION(MVSIZ) :: z1,z2,z3,z4
144 my_real,
DIMENSION(MVSIZ) :: n11,n21,n31
145 my_real,
DIMENSION(MVSIZ) :: xi,yi,zi
146 my_real,
DIMENSION(MVSIZ) :: x0,y0,z0
147 my_real,
DIMENSION(MVSIZ) :: xx1,yy1,zz1
148 my_real,
DIMENSION(MVSIZ) :: xx2,yy2,zz2
149 my_real,
DIMENSION(MVSIZ) :: xx3,yy3,zz3
150 my_real,
DIMENSION(MVSIZ) :: xx4,yy4,zz4
151 my_real,
DIMENSION(MVSIZ) :: xn1,yn1,zn1
152 my_real,
DIMENSION(MVSIZ) :: xn2,yn2,zn2
153 my_real,
DIMENSION(MVSIZ) :: xn3,yn3,zn3
154 my_real,
DIMENSION(MVSIZ) :: xn4,yn4,zn4
155 my_real,
DIMENSION(MVSIZ) :: pene
156 my_real,
DIMENSION(MVSIZ) :: p1,p2,p3,p4
157 my_real,
DIMENSION(MVSIZ) :: lb1,lb2,lb3,lb4
158 my_real,
DIMENSION(MVSIZ) :: lc1,lc2,lc3,lc4,stif
159
160
161 bid = zero
162 iwpene=0
163 iwpenedge=0
164 nrts =ipari(3)
165 nrtm =ipari(4)
166 nsn =ipari(5)
167 nmn =ipari(6)
168 nmn0 =nmn
169 nty =ipari(7)
170 nst =ipari(8)
171 mst =ipari(9)
172 ibuc =ipari(12)
173 isearch=ipari(12)
174 noint =ipari(15)
175 igap =ipari(21)
176 inacti=ipari(22)
177 multimp=ipari(23)
178 irm =ipari(24)
179 irs =ipari(25)
180 idel2 =ipari(17)
181 ilev =ipari(20)
182 itied =0
183 isu1 =ipari(45)
184 isu2 =ipari(46)
185
186 nln = ipari(35)
187 isym = ipari(43)
188 drad = zero
189
190 ALLOCATE(tag(numnod))
191 tag(1:numnod)=0
192
194 1 x ,nrtm ,intbuf_tab%IRECTM ,noint ,itab,
id,titr,
195 2 ix1 ,ix2 ,ix3 ,ix4 ,x1 ,
196 3 x2 ,x3 ,x4 ,y1 ,y2 ,
197 4 y3 ,y4 ,z1 ,z2 ,z3 ,
198 5 z4 ,n11 ,n21 ,n31 ,x0 ,
199 6 y0 ,z0 ,xn1 ,yn1 ,zn1 ,
200 7 xn2 ,yn2 ,zn2 ,xn3 ,yn3 ,
201 8 zn3 ,xn4 ,yn4 ,zn4 )
202
203
204
205 IF(isu2 /= 0 .and. isym == 1)THEN
206 ifs2 = 1
207 iss2 = isu2
208 ELSE
209 ifs2 = 0
210 iss2 = 1
211 ENDIF
212 gapinput = intbuf_tab%VARIABLES(2)
214 1 pm ,geo ,x ,ms ,
215 2 ixs ,ixc ,ixtg ,ixt ,
216 3 ixp ,rwa ,interface_id ,nty ,
217 4 noint ,nrtm ,nsn ,intbuf_tab%IRECTM ,
218 5 intbuf_tab%NSV ,inacti ,intbuf_tab%VARIABLES(2),igap ,
219 6 intbuf_tab%GAP_S ,intbuf_tab%GAP_M ,intbuf_tab%VARIABLES(13),intbuf_tab%VARIABLES(6),
220 7 intbuf_tab%VARIABLES(16),intbuf_tab%STFAC(1) ,intbuf_tab%STFM ,intbuf_tab%STFA ,
221 8 knod2els ,knod2elc ,knod2eltg ,nod2els ,
222 9 nod2elc ,nod2eltg ,igrsurf(isu1) ,ifs2 ,
223 a igrsurf(iss2) ,ipari(47) ,intbuf_tab%IELES ,
224 b intbuf_tab%IELEC ,intbuf_tab%AREAS ,ipartc ,iparttg ,
225 c thk ,thk_part ,intbuf_tab%GAP_SH ,xanew ,
226 d gapshmax ,intbuf_tab%NBINFLG ,intbuf_tab%MBINFLG ,nln ,
227 e intbuf_tab%NLG ,intbuf_tab%VARIABLES(29),ixs10 ,ixs16 ,
228 f ixs20 ,
id,titr,igeo, pm_stack , iworksh )
229 ipari(21) = igap
230
231
232
233 maxbox = intbuf_tab%VARIABLES(9)
234 minbox = intbuf_tab%VARIABLES(12)
235 gapmax0 = intbuf_tab%VARIABLES(16) + gapshmax
237 1 x ,intbuf_tab%IRECTM,intbuf_tab%NSV,intbuf_tab%VARIABLES(4),nseg ,
238 2 nmn ,nrtm ,mwa ,nsn ,intbuf_tab%CAND_E,
239 3 intbuf_tab%CAND_N,intbuf_tab%VARIABLES(2),rwa ,noint ,i_stok ,
240 4 intbuf_tab%VARIABLES(5),intbuf_tab%VARIABLES(8),maxbox,minbox ,intbuf_tab%MSR,
241 5 intbuf_tab%STFM,intbuf_tab%STFA ,multimp ,1 ,iddlevel ,
242 6 itab ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,igap,intbuf_tab%VARIABLES
243 7 gapmax0 ,inacti ,bid ,bid,i_mem,
id,titr, 0,prov_n,prov_e,
244 9 nsvg,ix1 ,ix2 ,ix3 ,ix4 ,
245 1 n11 ,n21 ,n31 ,pene ,x1 ,
246 2 x2 ,x3 ,x4 ,y1 ,y2 ,
247 3 y3 ,y4 ,z1 ,z2 ,z3 ,
248 4 z4 ,xi ,yi ,zi ,x0 ,
249 5 y0 ,z0 ,xn1 ,yn1 ,zn1 ,
250 6 xn2 ,yn2 ,zn2 ,xn3 ,yn3 ,
251 7 zn3 ,xn4 ,yn4 ,zn4 ,p1 ,
252 8 p2 ,p3 ,p4 ,lb1 ,lb2 ,
253 9 lb3 ,lb4 ,lc1 ,lc2 ,lc3 ,
254 1 lc4,stif)
255 if (i_mem == 2)RETURN
256
257 intbuf_tab%VARIABLES(9) = maxbox
258 intbuf_tab%VARIABLES(12) = minbox
259
260
261 IF (iddlevel==0.AND.nspmd>1)THEN
262 IF ( ((nelemint+i_stok)) > inter_cand%S_IXINT_2)
CALL upgrade_ixint(inter_cand,nelemint,i_stok)
263 gap = intbuf_tab%VARIABLES(2)
264 gapmin = intbuf_tab%VARIABLES(13)
265 gapmax = intbuf_tab%VARIABLES(16)
266 dgapload = intbuf_tab%VARIABLES(46)
268 . intbuf_tab%IRECTM,intbuf_tab%NSV,i_stok,intbuf_tab%CAND_E,intbuf_tab%CAND_N,
269 . igap,gap,gapmax,gapmin,dgapload,
270 . drad,intbuf_tab%GAP_S,intbuf_tab%GAP_SL,intbuf_tab%GAP_M,intbuf_tab%GAP_ML,
271 . numnod,x,inter_cand)
272 ENDIF
273
274
275 IF((iddlevel==0).AND. (dectyp>=3.AND.dectyp<=6))THEN
276
277 CALL i20wcontdd(intbuf_tab%NSV,intbuf_tab%MSR,nsn,nmn,iwcont,nsnt,nmnt)
278 END IF
279
280
281
282
283
284
285 IF(igap/=0)THEN
286 ALLOCATE(solidn_normal(3,numnod))
287 CALL i20norm(ipari(4),intbuf_tab%IRECTM,numnod,x,solidn_normal,
288 . ipari(6),intbuf_tab%MSR,nln,intbuf_tab%NLG,intbuf_tab%GAP_SH)
289 ENDIF
290
291
292 nlins =ipari(51)
293 nlinm =ipari(52)
294 nlinsa =ipari(53)
295 nlinma =ipari(54)
296 nsne =ipari(55)
297 nmne =ipari(56)
298
299 IF(nlins + nlinm /= 0)THEN
300
301
302 gap0 = gapinput
303 gape = gapinput
304 gapinfs = ep30
305 gapinfm = ep30
307 1x ,intbuf_tab%IXLINM ,intbuf_tab%STF,ixs ,pm ,
308 2geo ,nlinm ,ixc ,interface_id ,intbuf_tab%STFAC(1),
309 3nty ,gape ,noint ,intbuf_tab%GAP_ME,
310 4ms ,ixtg ,ixt ,ixp ,ixr ,
311 5igap ,intbuf_tab%VARIABLES(13),gap0 ,gapinfs ,nsne ,
312 6ipartc ,iparttg ,thk ,thk_part ,ixs10 ,
313 7
id ,titr ,kxx ,ixx ,igeo ,
314 8 nod2el1d ,knod2el1d ,knod2els ,knod2elc ,knod2eltg ,
315 9 nod2els ,nod2elc ,nod2eltg ,lelx , pm_stack , iworksh )
316
318 1x ,intbuf_tab%IXLINS,intbuf_tab%STFS,ixs ,pm ,
319 2geo ,nlins ,ixc ,-interface_id ,intbuf_tab%STFAC(1),
320 3nty ,gape ,noint ,intbuf_tab%GAP_SE
321 4ms ,ixtg ,ixt ,ixp ,ixr ,
322 5igap ,intbuf_tab%VARIABLES(13),gap0 ,gapinfm ,nsne ,
323 6ipartc ,iparttg ,thk ,thk_part ,ixs10 ,
324 7
id ,titr ,kxx ,ixx ,igeo ,
325 7 nod2el1d ,knod2el1d ,knod2els ,knod2elc ,knod2eltg ,
326 8 nod2els ,nod2elc ,nod2eltg ,lelx , pm_stack , iworksh)
327
328 intbuf_tab%VARIABLES(2) =
max(intbuf_tab%VARIABLES(2),gape)
329 gapinf=gapinfs+gapinfm
330 gapinf=
min(gapinf,intbuf_tab%VARIABLES(6))
331 intbuf_tab%VARIABLES(6)=
max(gapinf,intbuf_tab%VARIABLES(13))
332
333
334
335 maxbox = intbuf_tab%VARIABLES(9)
336 minbox = intbuf_tab%VARIABLES(12)
337 gap_tri = intbuf_tab%VARIABLES(2)
338
339 IF(igap/=0)gap_tri=two*gap_tri
341 1x ,intbuf_tab%IXLINM,intbuf_tab%IXLINS,intbuf_tab%VARIABLES(4),nlinsa,
342 2nmne ,nlinma ,mwa ,nsne ,intbuf_tab%LCAND_N,
343 3intbuf_tab%LCAND_S,gap_tri ,rwa ,noint ,i_stok_e ,
344 4intbuf_tab%VARIABLES(5),intbuf_tab%VARIABLES(8),maxbox ,minbox ,intbuf_tab%MSRL,
345 5intbuf_tab%NSVL,multimp ,intbuf_tab%ADCCM20,intbuf_tab%CHAIN20,i_mem,
346 6
id,titr,iddlevel,drad, 0)
347
348 if (i_mem == 2)RETURN
349 intbuf_tab%VARIABLES(9) = maxbox
350 intbuf_tab%VARIABLES(12) = minbox
351
352
353
354
355
356
357 ngrous=1+(i_stok_e-1)/nvsiz
358
359 IF(ipri>=1) WRITE(iout,2011)
360
361 DO ng=1,ngrous
362 nft = (ng-1) * nvsiz
363 lft = 1
364 llt = min0( nvsiz, i_stok_e - nft )
365 jlt_new = 0
367 1 llt ,intbuf_tab%VARIABLES(13),intbuf_tab%LCAND_S(1+nft) ,intbuf_tab%LCAND_N(1+nft),
368 . intbuf_tab%IXLINS,
369 2 intbuf_tab%IXLINM,nx ,ny ,nz ,
370 4 n1 ,n2 ,m1 ,m2 ,jlt_new ,
371 5 x ,igap ,intbuf_tab%GAP_SE ,intbuf_tab%GAP_ME,gapv,
372 6 nln ,intbuf_tab%NLG,solidn_normal)
373
374 fpenmax = intbuf_tab%VARIABLES(27)
375 llt = jlt_new
376 CALL i20pwr3ae(itab ,inacti,intbuf_tab%LCAND_N(1+nft),intbuf_tab%LCAND_S(1+nft),
377 2 intbuf_tab%STFS,intbuf_tab%STF,xanew ,intbuf_tab%NSVL,iwpenedge,
378 3 n1 ,n2 ,m1 ,m2 ,nx ,
379 4 ny ,nz ,gapv ,intbuf_tab%GAP_SE,intbuf_tab%GAP_ME,
380 5 igap ,x ,fpenmax )
381 IF(iwpenedge/=0.AND.inacti==3.OR.inacti==4) iwrn = 1
382 ENDDO
383 IF(((iddlevel==0)).AND.(dectyp>=3.AND.dectyp<=6))THEN
384
385 CALL i20wcontdd(intbuf_tab%NSVL,intbuf_tab%MSRL,nsne,nmne,iwcont,
386 . nsnet,nmnet)
387 END IF
388 END IF
389
390
391
393 1 nrtm ,nsn ,nln, intbuf_tab%GAP_M,intbuf_tab%GAP_SH,
394 2 intbuf_tab%GAP_S,intbuf_tab%NBINFLG,intbuf_tab%NSV,intbuf_tab%NLG,tag)
395
396 ngrous=1+(i_stok-1)/nvsiz
397
398 DO ng=1,ngrous
399 IF(ipri>=1) WRITE(iout,2007)
400 nft = (ng-1) * nvsiz
401 lft = 1
402 llt = min0( nvsiz, i_stok - nft )
404 1 x,intbuf_tab%IRECTM,intbuf_tab%NSV,intbuf_tab%CAND_E(1+nft)
405 2 intbuf_tab%STFM,intbuf_tab%STFA,gapv ,igap ,intbuf_tab%VARIABLES(2) ,
406 3 intbuf_tab%GAP_S,intbuf_tab%GAP_M,1,intbuf_tab%VARIABLES(13),intbuf_tab%VARIABLES(16),
407 4 bid ,bid ,drad,ix1 ,ix2 ,
408 5 ix3 ,ix4 ,nsvg,x1 ,x2 ,
409 6 x3 ,x4 ,y1 ,y2 ,y3
410 7 y4 ,z1 ,z2 ,z3 ,z4 ,
411 8 xi ,yi ,zi ,stif ,bid ,
412 9 llt)
413
414 CALL i20dst3(igap,intbuf_tab%GAP_SH,intbuf_tab%CAND_E(1+nft),intbuf_tab%CAND_N(1+nft),gapv ,
415 2 intbuf_tab%VARIABLES(2),intbuf_tab%GAP_S,intbuf_tab%GAP_M,intbuf_tab%VARIABLES(16),
416 . intbuf_tab%VARIABLES(13),
417 3 intbuf_tab%IRECTM,nln ,intbuf_tab%NLG,solidn_normal,intbuf_tab%NSV,
418 4 intbuf_tab%NBINFLG,tag,ix3 ,ix4 ,x1 ,
419 5 x2, x3, x4 ,y1 ,y2 ,
420 6 y3, y4, z1 ,z2 ,z3 ,
421 7 z4, xi, yi ,zi ,x0 ,
422 8 y0, z0, xn1,yn1,zn1,
423 9 xn2,yn2, zn2,xn3,yn3,
424 1 zn3,xn4, yn4,zn4,p1 ,
425 2 p2 ,p3 ,p4 ,lb1,lb2,
426 3 lb3,lb4,lc1 ,lc2,lc3,
427 4 lc4)
428 CALL i7pen3(zero,gapv,n11 ,n21 ,n31 ,
429 1 pene ,xn1 ,yn1,zn1,xn2,
430 2 yn2 ,zn2 ,xn3,yn3,zn3,
431 3 xn4 ,yn4 ,zn4,p1 ,p2 ,
432 4 p3 ,p4,llt)
433
434 fpenmax = intbuf_tab%VARIABLES(27)
435 CALL i20pwr3a(itab ,inacti,intbuf_tab%CAND_E(1+nft),intbuf_tab%CAND_N(1+nft),
436 . intbuf_tab%STFA ,
437 1 intbuf_tab%STFM,xanew,intbuf_tab%NSV,iwpene ,iwrn ,
438 2 intbuf_tab%CAND_E,intbuf_tab%CAND_N,mwa ,noint ,gapv ,
439 3 nty ,itied , fpenmax ,
id,titr ,
440 4 ix1,ix2,ix3,ix4,x1,
441 5 x2 ,x3 ,x4 ,y1 ,y2,
442 6 y3 ,y4 ,z1 ,z2 ,z3,
443 7 z4 ,xi ,yi ,zi ,n11,
444 8 n21,n31,pene,nsvg)
445 ENDDO
446
447
448
449
450
451
452
453 ngrous=1+(i_stok-1)/nvsiz
454 iwpene =0
455 iwpenedge=0
456
457 DO ng=1,ngrous
458 IF(ipri>=1) WRITE(iout,2007)
459 nft = (ng-1) * nvsiz
460 lft = 1
461 llt = min0( nvsiz, i_stok - nft )
463 1 xanew ,intbuf_tab%IRECTM,intbuf_tab%NSV,intbuf_tab%CAND_E
464 2 intbuf_tab%STFM,intbuf_tab%STFA,gapv ,igap ,intbuf_tab%VARIABLES(2) ,
465 3 intbuf_tab%GAP_S,intbuf_tab%GAP_M,1,intbuf_tab%VARIABLES(13),intbuf_tab%VARIABLES(16),
466 4 bid ,bid ,drad,ix1 ,ix2 ,
467 5 ix3 ,ix4 ,nsvg,x1 ,x2 ,
468 6 x3 ,x4 ,y1 ,y2 ,y3 ,
469 7 y4 ,z1 ,z2 ,z3 ,z4 ,
470 8 xi ,yi ,zi ,stif ,bid ,
471 9 llt)
472
473 CALL i20dst3(igap,intbuf_tab%GAP_SH,intbuf_tab%CAND_E(1+nft),intbuf_tab%CAND_N(1+nft),gapv ,
474 2 intbuf_tab%VARIABLES(2),intbuf_tab%GAP_S,intbuf_tab%GAP_M,intbuf_tab%VARIABLES(16),
475 . intbuf_tab%VARIABLES(13),
476 3 intbuf_tab%IRECTM,nln ,intbuf_tab%NLG,solidn_normal,intbuf_tab%NSV,
477 4 intbuf_tab%NBINFLG,tag,ix3 ,ix4 ,x1 ,
478 5 x2, x3, x4 ,y1 ,y2
479 6 y3, y4, z1 ,z2 ,z3 ,
480 7 z4, xi, yi ,zi ,x0 ,
481 8 y0, z0, xn1,yn1,zn1,
482 9 xn2,yn2, zn2,xn3,yn3,
483 1 zn3,xn4, yn4,zn4,p1 ,
484 2 p2 ,p3 ,p4 ,lb1,lb2,
485 3 lb3,lb4,lc1 ,lc2,lc3,
486 4 lc4)
487
488 CALL i7pen3(zero,gapv,n11 ,n21 ,n31 ,
489 1 pene,xn1 ,yn1 ,zn1 ,xn2,
490 2 yn2 ,zn2 ,xn3 ,yn3 ,zn3,
491 3 xn4 ,yn4 ,zn4 ,p1 ,p2 ,
492 4 p3 ,p4,llt)
493
494 CALL i20pwr3(itab ,inacti,intbuf_tab%CAND_E(1+nft),intbuf_tab%CAND_N(1+nft),intbuf_tab%STFA,
495 1 intbuf_tab%STFM,xanew,intbuf_tab%NSV,iwpene ,iwrn ,
496 2 intbuf_tab%CAND_E,intbuf_tab%CAND_N,mwa ,noint ,gapv ,
497 3 nty ,itied ,intbuf_tab%PENIS,intbuf_tab%PENIM,intbuf_tab%GAP_S,
498 4 igap ,
id ,titr,ix1,ix2,
499 5 ix3 ,ix4,n11 ,n21,n31,
500 6 pene,nsvg)
501 ENDDO
502 intbuf_tab%I_STOK(1)=iwpene
503
504
505
506
507 IF(nlins /= 0)THEN
508
509 ngrous=1+(i_stok_e-1)/nvsiz
510
511 IF(ipri>=1) WRITE(iout,2011)
512
513 DO ng=1,ngrous
514 nft = (ng-1) * nvsiz
515 lft = 1
516 llt = min0( nvsiz, i_stok_e - nft )
517 jlt_new = 0
519 1 llt ,intbuf_tab%VARIABLES(13),intbuf_tab%LCAND_S(1+nft) ,intbuf_tab%LCAND_N(1+nft),
520 . intbuf_tab%IXLINS,
521 2 intbuf_tab%IXLINM,nx ,ny ,nz ,
522 4 n1 ,n2 ,m1 ,m2 ,jlt_new ,
523 5 xanew ,igap ,intbuf_tab%GAP_SE ,intbuf_tab%GAP_ME,gapv,
524 6 nln ,intbuf_tab%NLG,solidn_normal)
525 llt = jlt_new
526 CALL i20pwr3e(itab ,inacti,intbuf_tab%LCAND_S(1+nft),intbuf_tab%LCAND_N(1+nft),
527 2 intbuf_tab%STFS,intbuf_tab%STF,xanew ,intbuf_tab%NSVL,iwpenedge,
528 3 n1 ,n2 ,m1 ,m2 ,nx ,
529 4 ny ,nz ,gapv ,intbuf_tab%GAP_SE,intbuf_tab%GAP_ME,
530 5 intbuf_tab%PENISE,intbuf_tab%PENIME,igap )
531 IF(iwpenedge/=0.AND.inacti==3.OR.inacti==4) iwrn = 1
532 ENDDO
533 IF(((iddlevel==0)).AND.(dectyp>=3.AND.dectyp<=6))THEN
534
535 CALL i20wcontdd(intbuf_tab%NSVL,intbuf_tab%MSRL,nsne,nmne,iwcont,
536 . nsnet,nmnet)
537 END IF
538 END IF
539
540
541 CALL i20nlg(nln,nrtm,nsn ,nlins ,nlinm ,
542 2 intbuf_tab%NLG,intbuf_tab%IRECTM,intbuf_tab%NSV,intbuf_tab%IXLINS,
543 2
544 3 nmn ,nsne ,nmne ,intbuf_tab%MSR,intbuf_tab%NSVL,
545 4 intbuf_tab%MSRL,intbuf_tab%STFA,intbuf_tab%AVX_ANCR,xanew ,x ,
546 5 intbuf_tab%PENIA,intbuf_tab%ALPHAK)
547
548
549 IF(igap/=0)THEN
550 DEALLOCATE(solidn_normal)
551 END IF
552
553 iwpentot = iwpene + iwpenedge
554 DEALLOCATE(tag)
555
556 RETURN
557
558 2007 FORMAT(//' IMPACT CANDIDATES',/,
559 +' MAIN SECONDARY NODES '/
560 +' NODE ')
561 2011 FORMAT(//' IMPACT CANDIDATES',/,
562 +' MAIN NODES SECONDARY NODES ')
subroutine i20wcontdd(nsv, msr, nsn, nmn, iwcont, nsnt, nmnt)
subroutine i11buc1(x, irectm, irects, bumult, nrts, nmn, nrtm, mwa, nsn, cand_m, cand_s, gap, xyzm, noint, i_stok, dist, tzinf, maxbox, minbox, msr, nsv, multimp, addcm, chaine, i_mem, id, titr, iddlevel, drad, it19)
subroutine i20pwr3ae(itab, inacti, cand_m, cand_s, stfs, stfm, xanew, nsv, iwpene, n1, n2, m1, m2, nx, ny, nz, gapv, gap_s, gap_m, igap, x, fpenmax)
subroutine i20pwr3e(itab, inacti, cand_m, cand_s, stfs, stfm, x, nsv, iwpene, n1, n2, m1, m2, nx, ny, nz, gapv, gap_s, gap_m, penis, penim, igap)
subroutine i20pwr3(itab, inacti, cand_e, cand_n, stfn, stf, x, nsv, iwpene, iwrn, cand_en, cand_nn, tag, noint, gapv, nty, itied, penis, penim, gap_s, igap, id, titr, ix1, ix2, ix3, ix4, n1, n2, n3, pene, nsvg)
subroutine i20pwr3a(itab, inacti, cand_e, cand_n, stfn, stf, xanew, nsv, iwpene, iwrn, cand_en, cand_nn, tag, noint, gapv, nty, itied, fpenmax, id, titr, ix1, ix2, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, n1, n2, n3, pene, nsvg)
subroutine i20sti3e(x, ixlin, stf, ixs, pm, geo, nrt, ixc, nintr, slsfac, nty, gapmax, noint, gap_sm, ms, ixtg, ixt, ixp, ixr, igap, gapmin, gap0, gapinf, nsne, ipartc, iparttg, thk, thk_part, ixs10, id, titr, kxx, ixx, igeo, nod2el1d, knod2el1d, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, lelx, pm_stack, iworksh)
subroutine i20sti3(pm, geo, x, ms, ixs, ixc, ixtg, ixt, ixp, wa, nint, nty, noint, nrt, nsn, irect, nsv, inacti, gap, igap, gap_s, gap_m, gapmin, gapinf, gapmax, stfac, stf, stfn, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf1, ifs2, igrsurf2, intth, ieles, ielec, areas, ipartc, iparttg, thk, thk_part, gap_sh, xanew, gapshmax, nbinflg, mbinflg, nln, nlg, gapsol, ixs10, ixs16, ixs20, id, titr, igeo, pm_stack, iworksh)
subroutine i20nlg(nln, nrtm, nsn, nlins, nlinm, nlg, irect, nsv, ixlins, ixlinm, nmn, nsne, nmne, msr, nsve, msre, stfa, dxanc, xanew, x, penia, alphak)
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 i7err3(x, nrtm, irect, noint, itab, id, titr, ix1, ix2, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, n1, n2, n3, x0, y0, z0, xn1, yn1, zn1, xn2, yn2, zn2, xn3, yn3, zn3, xn4, yn4, zn4)
integer, parameter nchartitle
subroutine i20dst3(igap, gap_sh, cand_e, cand_n, gapv, gap, gap_s, gap_m, gapmax, gapmin, irect, nln, nlg, solidn_normal, nsv, nbinflg, tag, 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)
subroutine i20dst3e(jlt, gap, cand_s, cand_m, irects, irectm, nx, ny, nz, n1, n2, m1, m2, jlt_new, x, igap, gap_s, gap_m, gapv2, nln, nlg, solidn_normal)
subroutine i20gap1(nrtm, nsn, nln, gap_m, gap_sh, gap_s, nbinflg, nsv, nlg, tag)
subroutine i20norm(nrtm, irect, numnod, x, solidn_normal, nmn, msr, nln, nlg, gap_sh)
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 i7pen3(marge, gapv, n1, n2, n3, pene, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, last)
subroutine update_weight_inter_type7(nelemint, interface_id, nsn, nrtm, ifiend, irect, nsv, i_stok, cand_e, cand_n, igap, gap, gapmax, gapmin, dgapload, drad, gap_s, gap_s_l, gap_m, gap_m_l, numnod, x, inter_cand)
subroutine upgrade_ixint(inter_cand, nelemint, new_size)