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