58
59
60
61
63 USE intbufdef_mod
65 USE multi_fvm_mod
66 USE interfaces_mod
68 USE i2_surfi_mod , ONLY : i2_surfi
69
70
71
72#include "implicit_f.inc"
73
74
75
76#include "com04_c.inc"
77#include "units_c.inc"
78#include "param_c.inc"
79#include "scr03_c.inc"
80#include "scr17_c.inc"
81#include "tabsiz_c.inc"
82
83
84
85 INTEGER IPARI(NPARI,NINTER), ITAB(NUMNOD),(NIXS,NUMELS),
86 . IXC(*),IXTG(*),KNOD2ELC(*),KNOD2ELTG(*),
87 . NOD2ELC(*),NOD2ELTG(*),KNOD2ELS(*),NOD2ELS(*),
88 . IXS10(6,*), IXS16(8,*), IXS20(12,*),NIGE(*)
89 INTEGER ,INTENT(IN) :: S_NOD2ELS,S_NOD2ELTG
90 INTEGER LIXINT, NBRIC
91 INTEGER,INTENT(IN) :: IPM(NPROPMI,NUMMAT), IGEO(NPROPGI,NUMGEO)
92 my_real,
INTENT(IN) :: bufmat(sbufmat)
93 my_real :: xfiltr(*),stfac(*),fric_p(10,ninter),frigap(nparir,ninter)
95 my_real,
INTENT(IN) :: x(3,numnod)
97 INTEGER NOM_OPT(LNOPT1,*)
98 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
99 INTEGER, INTENT(IN) :: NALE(NUMNOD)
100 INTEGER, INTENT(INOUT) :: LIST_NIN25(NINTER)
101 INTEGER, INTENT(INOUT) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
102
103 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
104 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
105 TYPE (SURF_) , DIMENSION(NSURF) ,TARGET :: IGRSURF
106 TYPE (SURF_) , DIMENSION(NSLIN) ,TARGET :: IGRSLIN
107 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
108 TYPE (INTERFACES_) ,INTENT(INOUT):: INTERFACES
109
110
111
112 INTEGER J, K, IRS, IRM, NI, NSN, NMN,NMT,
113 . NTYP,IS1,IS2,NOINT,NRTS,NRTM,NST,ILEV,
114 . MULTIMP,IGAP,INACTI,NME,IALLO,LINTER,
115 . ISU1,ISU2,NRTM0,NRTM_SH,
116 . NRTS_NEW, NRTM_NEW,IBID,INTTH,
117 . NRTM_IGE,NRTM_FE,NRTS_IGE,NRTS_FE,
118 . NMN_IGE,NMN_FE,NSN_IGE,NSN_FE,INTNITSCHE,IAD_IGE,GRBRIC_ID,NIN25
119
120 INTEGER :: STAT
121 INTEGER, DIMENSION(:), ALLOCATABLE, TARGET :: NTAG_TARGET
122 INTEGER, DIMENSION(:), POINTER :: NTAG
123 INTEGER, DIMENSION(:,:), POINTER :: SURF_NODES,SURF_NODES_IGE,LINE_NODES
124 LOGICAL TYPE18
125 CHARACTER MESS*40
126 INTEGER ID
127 CHARACTER(LEN=NCHARTITLE) :: TITR
128 DATA mess/'INTERFACE INPUT '/
129
130 ALLOCATE(ntag_target(2*numnod+1), stat=stat)
131
132 ntag(0:2*numnod) => ntag_target(1:2*numnod+1)
133
134 DO k=0,2*numnod
135 ntag(k) = 0
136 ENDDO
137 lixint = 0
138 nin25 = 0
139
140 DO ni = 1,linter
141
142 nrts = ipari(3,ni)
143 nrtm = ipari(4,ni)
144 nme = ipari(4,ni)
145 nsn = ipari(5,ni)
146 nmn = ipari(6,ni)
147 ntyp = ipari(7,ni)
148 noint = ipari(15,ni)
149 ilev = ipari(20,ni)
150 igap = ipari(21,ni)
151 inacti = ipari(22,ni)
152 multimp= ipari(23,ni)
153 is1 = ipari(13,ni)/10
154 is2 = mod(ipari(13,ni),10)
155 isu1 = ipari(45,ni)
156 isu2 = ipari(46,ni)
157 intth = ipari(47,ni)
158 intnitsche = ipari(86,ni)
159 grbric_id = ipari(83,ni)
160 irm = 0
161 irs = 0
162
163 IF (ntyp==0) cycle
164
165 IF(ntyp==7) THEN
166 nrtm_ige = ipari(73,ni)
167 nrtm_fe = ipari(74,ni)
168 nrts_ige = ipari(75,ni)
169 nrts_fe = ipari(76,ni)
170 nsn_ige = ipari(77,ni)
171 nsn_fe = ipari(78,ni)
172 nmn_ige = ipari(79,ni)
173 nmn_fe = ipari(80,ni)
174 ELSE
175 nrtm_ige = 0
176 nrtm_fe = nrtm
177 nrts_ige = 0
178 nrts_fe = nrts
179 nsn_ige = 0
180 nsn_fe = nsn
181 nmn_ige = 0
182 nmn_fe = nmn
183 ENDIF
184 type18=.false.
185 IF(ntyp==7 .AND. inacti==7)type18=.true.
186
188 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
189
190 intbuf_tab(ni)%STFAC(1) = stfac(ni)
191 DO j = 1,nparir
192 intbuf_tab(ni)%VARIABLES(j) = frigap(j,ni)
193 ENDDO
194
195
196
197
198
199 IF ( ntyp == 15 ) THEN
200 IF(nrts == 0) THEN
201 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=
id, c1=titr)
202 ENDIF
203 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
204 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
205 CALL insurf(nrts,nsn,irs,intbuf_tab(ni)%IRECTS,
206 . surf_nodes,itab,intbuf_tab(ni)%NSV,
id,titr,
207 . ntag,intbuf_tab(ni)%S_NSV,intbuf_tab(ni)%S_IRECTS,type18)
208 ELSEIF (ntyp == 17) THEN
209 ELSEIF (ntyp == 20) THEN
210 ELSEIF (ntyp == 22) THEN
211 IF(isu1>0)THEN
212 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
213 nbric=igrbric(isu1)%NENTITY
214 CALL ingrbric(nsn, igrbric(isu1)%ENTITY, intbuf_tab(ni)%NSV,
215 + ixs, nbric, pm, intbuf_tab(ni)%S_NSV,igeo)
216 ENDIF
217
218 ELSEIF(ntyp == 23) THEN
219 IF(is1/=0) THEN
220 IF(nrts == 0.AND.is1/=2) THEN
221 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=
id, c1=titr)
222 ENDIF
223 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
224 IF(is1 == 1)THEN
225 nrts=igrsurf(isu1)%NSEG
226 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
227 CALL insurf23(nrts,nsn,irs,intbuf_tab(ni)%IRECTS,noint,
228 . surf_nodes,itab,intbuf_tab(ni)%NSV,nrts_new,x,
229 . ntag)
230 nrts=nrts_new
231 ENDIF
232 ENDIF
233 ELSEIF (ntyp == 24) THEN
234
235
236
237
238 ELSEIF (ntyp == 25) THEN
239 ELSE
240 IF(is1/=0) THEN
241 IF(nrts == 0.AND.is1/=2.AND.is1/=5.AND.is1/=-1) THEN
242 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=
id, c1=titr)
243 ENDIF
244 IF(ipri>=1) WRITE(iout,'(//,A)')' SECONDARY SURFACE'
245 IF(is1 == 1)THEN
246 IF (ntyp == 3 .OR. ntyp == 6) irs = ipari(25,ni)
247 surf_nodes => igrsurf(isu1)%NODES(1:nrts_fe,1:4)
248 CALL insurf(nrts_fe,nsn_fe,irs,intbuf_tab(ni)%IRECTS,
249 . surf_nodes,itab,intbuf_tab(ni)%NSV,
id,titr,
250 . ntag,intbuf_tab(ni)%S_NSV,intbuf_tab(ni)%S_IRECTS,type18)
251 IF (igrsurf(isu1)%NSEG_IGE >= 1) THEN
252 surf_nodes_ige => igrsurf(isu1)%NODES_IGE(1:nrts_ige,1:4)
253 iad_ige = igrsurf(isu1)%IAD_IGE
254 CALL insurfigeo(nrts_ige,nrts_fe,nsn_ige,0,iad_ige,irs,
255 . intbuf_tab(ni)%IRECTS,noint,
256 . surf_nodes_ige,itab,intbuf_tab(ni)%NSV,
id,titr,intbuf_tab(ni)%NIGE,
257 . intbuf_tab(ni)%RIGE,intbuf_tab(ni)%XIGE,intbuf_tab(ni)%VIGE,
258 . nige,rige,xige,vige)
259 ENDIF
260 ELSEIF(is1 == 2)THEN
261 CALL inpoint(nsn,noint,igrnod(isu1)%ENTITY,itab,intbuf_tab(ni)%NSV)
262 ELSEIF(is1 == 3)THEN
263 line_nodes = > igrslin(isu1)%NODES(1:nrts,1:2)
264 CALL inslin(nrts,nsn,intbuf_tab(ni)%IRECTS,noint,
265 . line_nodes,itab,intbuf_tab(ni)%NSV,
266 . ntag)
267 ELSEIF(is1 == 5) THEN
268
269 nbric = igrbric(grbric_id)%NENTITY
270 IF (multi_fvm%IS_USED)THEN
271 ipari(14,ni) = 151
273 . ixs, nbric)
274 ELSE
275 ipari(14,ni) = 0
276 CALL ingrbric_nodes(nsn_fe, igrbric(grbric_id)%ENTITY, itab, intbuf_tab(ni)%NSV,
277 . ixs, nbric, nale, ipm, bufmat, intbuf_tab(ni)%S_NSV)
278 ENDIF
279 ENDIF
280 IF (ntyp==3) THEN
281 CALL elty_surf(0,nrts,igrsurf(isu1)%NSEG,igrsurf(isu1)%ELTYP,
282 . intbuf_tab(ni)%MSEGTYP,isu1)
283 ENDIF
284 ENDIF
285 nsn = nsn_fe+nsn_ige
286 ENDIF
287
288
289
290
291 IF ( ntyp == 15 ) THEN
292 IF(nrtm == 0) THEN
293 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo,i1=
id,c1=titr)
294 ENDIF
295 IF(ipri>=1) WRITE(iout,'(//,A,I10)')
296 . ' MAIN SURFACE IS THE HYPER-ELLIPSOIDAL SURFACE :',
297 . igrsurf(isu2)%ID
298 intbuf_tab(ni)%KSURF(1)=isu2
299 ELSEIF ( ntyp == 14 ) THEN
300 IF(nrtm == 0) THEN
301 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=
id,c1=titr)
302 ENDIF
303 IF(ipri>=1) WRITE(iout,'(//,A,I10)')
304 . ' MAIN SURFACE IS THE HYPER-ELLIPSOIDAL SURFACE :',
305 . igrsurf(isu2)%ID
306 intbuf_tab(ni)%KSURF(1)=isu2
307 ELSEIF (ntyp == 20) THEN
308
309
310 ELSEIF( ntyp == 23) THEN
311 IF(is2/=0) THEN
312 IF(nrtm == 0) THEN
313 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=
id, c1=titr)
314 ENDIF
315 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
316 IF(is2 == 1)THEN
317 nrtm=igrsurf(isu2)%NSEG
318 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
319 CALL insurf23(nrtm,nmn,irm,intbuf_tab(ni)%IRECTM,noint,
320 . surf_nodes,itab,intbuf_tab(ni
321 . ntag)
322 nrtm = nrtm_new
323 ENDIF
324 CALL elty_surf(0,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
325 . intbuf_tab(ni)%MSEGTYP,isu2)
326 ENDIF
327
328 ELSEIF (ntyp == 24) THEN
329 nrtm_sh = ipari(42,ni)
330 nrtm0 = nrtm -nrtm_sh
331 IF (is2/=0) THEN
332 IF(nrtm0 == 0) THEN
333 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo
334 ENDIF
335 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
336 IF(is2 == -1)THEN
337 nrtm0 = igrsurf(isu2)%NSEG
338 surf_nodes => igrsurf(isu2)%NODES(1:nrtm0,1:4)
339 CALL insurf(nrtm0,nmn,irm,intbuf_tab(ni)%IRECTM,
340 . surf_nodes,itab,intbuf_tab(ni)%MSR,
id,titr,
341 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
342 ENDIF
343 IF(is1/=-2)THEN
344 nrtm0 = igrsurf(isu1)%NSEG
345 surf_nodes => igrsurf(isu1)%NODES(1:nrtm0,1:4)
346 CALL insurf(nrtm0,nmn,irm,intbuf_tab(ni)%IRECTM,
347 . surf_nodes,itab,intbuf_tab(ni)%MSR,
id,titr,
348 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
349 ENDIF
350 ENDIF
351 ELSEIF (ntyp == 25) THEN
352 ELSE
353 IF (ntyp == 3 .OR. ntyp == 5 .OR. ntyp == 6 .OR. ntyp == 8)
354 . irm = ipari(24,ni)
355 IF (is2/=0) THEN
356 IF(nrtm_fe == 0 .AND. nrtm_ige == 0) THEN
357 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=
id, c1=titr)
358 ENDIF
359 IF(ipri>=1) WRITE(iout,'(//,A)')' MAIN SURFACE'
360 IF(is2 == 1 )THEN
361 surf_nodes => igrsurf(isu2)%NODES(1:nrtm_fe,1:4)
362 CALL insurf(nrtm_fe,nmn_fe,irm,intbuf_tab(ni)%IRECTM,
363 . surf_nodes,itab,intbuf_tab(ni)%MSR,
id,titr,
364 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
365 IF (igrsurf(isu2)%NSEG_IGE >= 1) THEN
366 surf_nodes_ige => igrsurf(isu2)%NODES_IGE(1:nrtm_ige,1:4)
367 iad_ige = igrsurf(isu2)%IAD_IGE
368 CALL insurfigeo(nrtm_ige,nrtm_fe,nmn_ige,nsn_ige,iad_ige,irm,intbuf_tab(ni)%IRECTM,noint,
369 . surf_nodes_ige,
370 . itab,intbuf_tab(ni)%MSR,
id,titr,intbuf_tab(ni)%NIGE(nsn_ige+1),
371 . intbuf_tab(ni)%RIGE(3*nsn_ige+1),intbuf_tab(ni)%XIGE(3*nsn_ige+1),intbuf_tab(ni)%VIGE(3*nsn_ige+1),
372 . nige,rige,xige,vige)
373 ENDIF
374 ELSEIF(is2 == 3)THEN
375 line_nodes => igrslin(isu2)%NODES(1:nrtm,1:2)
376 CALL inslin(nrtm,nmn,intbuf_tab(ni)%IRECTM,noint,
377 . line_nodes,itab,intbuf_tab(ni)%MSR,
378 . ntag)
379 ELSEIF(is2 == 4) THEN
380 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
381 CALL insurf(nrtm,nmn,irm,intbuf_tab(ni)%IRECTM,
382 . surf_nodes,itab,intbuf_tab(ni)%MSR,
id,titr,
383 . ntag,intbuf_tab(ni)%S_MSR,intbuf_tab(ni)%S_IRECTM,type18)
384 ENDIF
385 IF (ntyp==3 ) THEN
386 CALL elty_surf(nrts,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
387 . intbuf_tab(ni)%MSEGTYP,isu2)
388 ELSEIF ((ntyp==2.AND.is2>0) .OR. ntyp==5 .OR. ntyp==7 .OR.
389 + ntyp==10 .OR. ntyp==21) THEN
390 CALL elty_surf(0,nrtm,igrsurf(isu2)%NSEG,igrsurf(isu2)%ELTYP,
391 . intbuf_tab(ni)%MSEGTYP,isu2)
392 END IF
393 nmn = nmn_fe+nmn_ige
394 ENDIF
395
396 ENDIF
397
398 IF (ntyp == 1) THEN
399
401 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,
402 . intbuf_tab(ni)%NSEGM,nmt,nrtm,nmn)
403
404 ELSEIF (ntyp == 2) THEN
405 lixint = lixint+nsn
406 IF (ilev == 20 .OR. ilev == 21 .OR. ilev == 22.OR.intth >0) THEN
407 DO j = 1,nsn
408 intbuf_tab(ni)%AREAS2(j) = areasl(ni)
409 ENDDO
410 ENDIF
411 IF (ilev == 20 .OR. ilev == 21 .OR. ilev == 22) THEN
412
413 intbuf_tab(ni)%RUPT(1) =
i2rupt(1,ni)
414 intbuf_tab(ni)%RUPT(2) =
i2rupt(2,ni)
415 intbuf_tab(ni)%RUPT(3) =
i2rupt(3,ni)
416 intbuf_tab(ni)%RUPT(4) =
i2rupt(4,ni)
417 intbuf_tab(ni)%RUPT(5) =
i2rupt(5,ni)
418 intbuf_tab(ni)%RUPT(6) =
i2rupt(6,ni)
419 ENDIF
420 IF (is1==-1.AND. is2==-1) THEN
421 IF(ipri>=1)
WRITE(iout,
'(//,A,I10)')
' SURFACE TO SURFACE INFO OF INTERFACE NUMBER :',
id
422 CALL i2_surfi(npari ,ipari(1,ni),nsurf ,igrsurf ,
423 1 nsn ,intbuf_tab(ni)%NSV,nrtm ,intbuf_tab(ni)%IRECTM,
424 2 nmn ,intbuf_tab(ni)%MSR,intbuf_tab(ni)%MSEGTYP,
425 3 frigap(4,ni),x ,numnod,itab ,ipri ,iout ,
426 4 ixs ,numels ,noint ,intbuf_tab(ni)%IRTLM ,
427 5 intbuf_tab(ni)%CSTS,intbuf_tab(ni)%DPARA,ixc ,
428 6 ixtg , knod2elc ,knod2eltg,nod2elc ,nod2eltg ,
429 7 knod2els,nod2els ,ixs10 ,ixs16 ,ixs20 ,
430 8 s_nod2els,s_nod2eltg,numelc ,numeltg ,numels10 ,
431 9 numels16,numels20 ,
id,titr)
432 END IF
433
434 ELSEIF (ntyp == 3 .OR. ntyp == 4 .OR. ntyp == 9) THEN
435 IF(ipari(30,ni)/=0) THEN
436 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
437 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
438 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
439 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
440 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
441 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
442 ENDIF
443 IF(ipari(31,ni)/=0) THEN
444 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
445 ENDIF
447 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
448 . nst,nrts,nsn)
450 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
451 . nmt,nrtm,nmn)
452
453 ELSEIF (ntyp == 5) THEN
454
455 IF (ipari(30,ni)/=0) THEN
456 intbuf_tab(ni)%FRIC_P(1) =fric_p(1,ni)
457 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
458 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
459 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
460 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
461 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
462 ENDIF
463 IF(ipari(31,ni)/=0) THEN
464 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
465 ENDIF
467 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
468 . nst,nrts,nsn)
470 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
471 . nmt,nrtm,nmn)
472
473 ELSEIF (ntyp == 6) THEN
475 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
476 . nst,nrts,nsn)
478 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
479 . nmt,nrtm,nmn)
480
481 ELSEIF (ntyp == 7) THEN
482 IF (ipari(30,ni)/=0) THEN
483 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
484 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
485 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
486 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
487 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
488 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
489 ENDIF
490 IF(ipari(31,ni)/=0) THEN
491 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
492 ENDIF
493 lixint = lixint+multimp*(nsn_ige+nsn_fe)
494
495 ELSEIF (ntyp == 8) THEN
496
498 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
499 . nmt,nrtm,nmn)
500
501 ELSEIF (ntyp == 11) THEN
502 CALL i11edge( ipari(1,ni),intbuf_tab(ni) )
503
504 ELSEIF (ntyp == 12) THEN
506 . ipari(8,ni),intbuf_tab(ni)%IRECTS,intbuf_tab(ni)%NSV,intbuf_tab(ni)%NSEGS,
507 . nst,nrts,nsn)
509 . ipari(9,ni),intbuf_tab(ni)%IRECTM,intbuf_tab(ni)%MSR,intbuf_tab(ni)%NSEGM,
510 . nmt,nrtm,nmn)
511
512 ELSEIF (ntyp == 20) THEN
513 IF (ipari(30,ni)/=0) THEN
514 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
515 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
516 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
517 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
518 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
519 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
520 ENDIF
521 IF(ipari(31,ni)/=0) THEN
522 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
523 ENDIF
524 lixint = lixint+multimp*nsn
525 iallo = 2
527 1 iallo ,ipari(1,ni) ,igrnod ,igrsurf ,
528 2 igrslin ,intbuf_tab(ni)%IRECTM,frigap(1,ni) ,
529 3 intbuf_tab(ni)%NSV,intbuf_tab(ni)%MSR,intbuf_tab(ni)%IXLINS,intbuf_tab(ni)%IXLINM,
530 4 intbuf_tab(ni)%NSVL,intbuf_tab(ni)%MSRL,itab ,intbuf_tab(ni)%ISLINS,
531 5 intbuf_tab(ni)%ISLINM,intbuf_tab(ni)%NLG,x ,intbuf_tab(ni)%NBINFLG,
532 5 intbuf_tab(ni)%MBINFLG)
533
534
535 ELSEIF (ntyp == 21) THEN
536 IF (ipari(30,ni)/=0) THEN
537 intbuf_tab(ni)%FROT_P(1) = fric_p(1,ni)
538 intbuf_tab(ni)%FROT_P(2) = fric_p(2,ni)
539 intbuf_tab(ni)%FROT_P(3) = fric_p(3,ni)
540 intbuf_tab(ni)%FROT_P(4) = fric_p(4,ni)
541 intbuf_tab(ni)%FROT_P(5) = fric_p(5,ni)
542 intbuf_tab(ni)%FROT_P(6) = fric_p(6,ni)
543 ENDIF
544 IF(ipari(31,ni)/=0) THEN
545 intbuf_tab(ni)%ALPHA0(1) = xfiltr(ni)
546 ENDIF
547 lixint =
max(lixint,multimp*nsn)
548
549 ELSEIF (ntyp == 22) THEN
550 IF (ipari(30,ni)/=0) THEN
551 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
552 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
553 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
554 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
555 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
556 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
557 ENDIF
558 IF(ipari(31,ni)/=0) THEN
559 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
560 ENDIF
561 lixint = lixint+multimp*nsn
562
563 ELSEIF (ntyp == 23) THEN
564 IF (ipari(30,ni)/=0) THEN
565 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
566 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
567 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
568 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
569 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
570 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
571 ENDIF
572 IF(ipari(31,ni)/=0) THEN
573 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
574 ENDIF
575 lixint =
max(lixint,multimp*nsn)
576
577 ELSEIF (ntyp == 24) THEN
578 IF (ipari(30,ni)/=0) THEN
579 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
580 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
581 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
582 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
583 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
584 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
585 ENDIF
586 IF(ipari(31,ni)/=0) THEN
587 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
588 ENDIF
589 lixint = lixint+multimp*nsn
590
591 iallo = 2
593 1 iallo , ipari(1,ni) ,igrnod ,igrsurf ,
594 2 intbuf_tab(ni)%IRECTM ,frigap(1,ni) ,
595 3 intbuf_tab(ni)%NSV , intbuf_tab(ni)%MSR ,itab ,x ,
596 4 intbuf_tab(ni)%NBINFLG , intbuf_tab(ni)%MBINFLG ,intbuf_tab(ni)%MSEGTYP24 ,intbuf_tab(ni)%ISEADD,
597 5 intbuf_tab(ni)%ISEDGE , ibid ,ibid ,ixc ,
598 6 ixtg , knod2elc ,knod2eltg ,nod2elc ,
599 7 nod2eltg , knod2els ,nod2els ,ixs ,
600 8 ixs10 ,ixs16 ,ixs20 ,intbuf_tab(ni)%IRTSE ,
601 9 intbuf_tab(ni)%IS2SE ,intbuf_tab(ni)%IS2PT ,intbuf_tab(ni)%IS2ID ,intnitsche )
602
603
604 ELSEIF (ntyp == 25) THEN
605 IF (ipari(30,ni)/=0) THEN
606 intbuf_tab(ni)%FRIC_P(1) = fric_p(1,ni)
607 intbuf_tab(ni)%FRIC_P(2) = fric_p(2,ni)
608 intbuf_tab(ni)%FRIC_P(3) = fric_p(3,ni)
609 intbuf_tab(ni)%FRIC_P(4) = fric_p(4,ni)
610 intbuf_tab(ni)%FRIC_P(5) = fric_p(5,ni)
611 intbuf_tab(ni)%FRIC_P(6) = fric_p(6,ni)
612 ENDIF
613 IF(ipari(31,ni)/=0) THEN
614 intbuf_tab(ni)%XFILTR(1) = xfiltr(ni)
615 ENDIF
616 lixint = lixint+multimp*nsn
617
618 iallo = 2
619 IF(ilev==2)THEN
620
621 intbuf_tab(ni)%NBINFLG(1:intbuf_tab(ni)%S_NBINFLG)=0
622 intbuf_tab(ni)%MBINFLG(1:intbuf_tab(ni)%S_MBINFLG)=0
623 END IF
624 nin25 = nin25 + 1
625 list_nin25(ni) = nin25
627 1 iallo ,ipari(1,ni) ,igrnod , igrsurf ,
628 2 intbuf_tab(ni)%IRECTM , frigap(1,ni) ,
629 3 intbuf_tab(ni)%NSV ,intbuf_tab(ni)%MSR ,itab , x ,
630 4 intbuf_tab(ni)%NBINFLG ,intbuf_tab(ni)%MBINFLG ,intbuf_tab(ni)%MSEGTYP24 , intbuf_tab(ni)%ISEADD ,
631 5 intbuf_tab(ni)%ISEDGE ,ibid ,ibid ,ixc ,
632 6 ixtg ,knod2elc ,knod2eltg ,nod2elc ,
633 7 nod2eltg ,knod2els ,nod2els ,ixs ,
634 8 ixs10 ,ixs16 ,ixs20 ,intbuf_tab(ni)%IRTSE ,
635 9 intbuf_tab(ni)%IS2SE ,intbuf_tab(ni)%IS2PT ,intbuf_tab(ni)%IS2ID ,interfaces%PARAMETERS ,
636 a nin25 ,flag_elem_inter25 )
637
638 ENDIF
639
640 DO j = 1,nparir
641 intbuf_tab(ni)%VARIABLES(j) = frigap(j,ni)
642 ENDDO
643
644 ENDDO
645
646 NULLIFY(ntag)
647 DEALLOCATE(ntag_target)
648
649 RETURN
subroutine i11edge(ipari, intbuf_tab)
subroutine i20surfi(iallo, ipari, igrnod, igrsurf, igrslin, irect, frigap, nsv, msr, ixlins, ixlinm, nsve, msre, itab, islins, islinm, nlg, x, nbinflg, mbinflg)
subroutine i24surfi(iallo, ipari, igrnod, igrsurf, irect, frigap, nsv, msr, itab, x, nbinflg, mbinflg, msegtyp, iseadd, isedge, itag, intply, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, knod2els, nod2els, ixs, ixs10, ixs16, ixs20, irtse, is2se, is2pt, is2id, intnitsche)
subroutine i25surfi(iallo, ipari, igrnod, igrsurf, irect, frigap, nsv, msr, itab, x, nbinflg, mbinflg, msegtyp, iseadd, isedge, itag, intply, ixc, ixtg, knod2elc, knod2eltg, nod2elc, nod2eltg, knod2els, nod2els, ixs, ixs10, ixs16, ixs20, irtse, is2se, is2pt, is2id, parameters, nin25, flag_elem_inter25)
subroutine ingrbric(msn, brics, msv, ixs, nbric, pm, s_msv, igeo)
subroutine ingrbric_centroids(ibufssg, msv, ixs, nbric)
subroutine ingrbric_nodes(msn, ibufssg, itab, msv, ixs, nbric, nale, ipm, bufmat, s_msv)
subroutine inpoint(msn, noint, brics, itab, msv)
subroutine inslin(nrt, msn, irect, noint, slin_nodes, itab, msv, ntag)
subroutine insurf23(nrt, msn, ir, irect, noint, surf_nodes, itab, msv, nrtnew, x, ntag)
subroutine insurf(nrt, msn, ir, irect, surf_nodes, itab, msv, id, titr, ntag, s_msv, sirect, type18)
subroutine insurfigeo(nrt_ige, offset_seg, msn_ige, offset_node, iadtabige, ir, irect, noint, surf_nodes_ige, itab, msv, id, titr, nige, rige, xige, vige, nige_tmp, rige_tmp, xige_tmp, vige_tmp)
subroutine i2rupt(x, v, a, ms, in, stifn, fsav, weight, irect, nsv, msr, irtl, irupt, crst, mmass, miner, smass, siner, area, uvar, xsm0, dsm, fsm, prop, ipari, nsn, nmn, nuvar, igtyp, pid, npf, tf, itab, fncont, pdama2, isym, inorm, h3d_data, fncontp, ftcontp)
subroutine elty_surf(nrtm0, nrtm, nseg, surf_eltyp, msegtyp, isu2)
integer, parameter nchartitle
subroutine nsegmt(ipar, irect, nodes, nseg, nst, nrt, nno)
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)