34 SUBROUTINE inintsub_7(ITAB ,IGRNOD ,IGRSURF ,NOM_OPT ,INTBUF_TAB,
35 . NRTM ,NRTM0 ,NSN ,NISUBS ,NISUBM ,
36 . NOINT ,NI ,NOD2NSV ,NOD2RTM ,KAD ,
37 . TAGNOD ,TAGRTM ,IADD ,NT19 )
49#include "implicit_f.inc"
58 INTEGER ITAB(*), NOD2NSV(*), NOD2RTM(*), KAD(*), TAGNOD(*), TAGRTM(*),
60 INTEGER NRTM, NRTM0, NSN, NISUBS, NISUBM, NOINT, NI, NT19
61 INTEGER NOM_OPT(LNOPT1,*)
63 TYPE(intbuf_struct_) INTBUF_TAB(*)
67 INTEGER I,J,K,,ISU,ISU1,ISU2,
68 . JSUB, KSUB, NNE, IS, ISV, CUR, ID1,
69 . NEXT, IM, , JAD, IN, II, N,STAT,K1,K2,INOD,IFNRT
70 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
72 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
73 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
74 TYPE (SURF_) ,
DIMENSION(NSLIN) :: IGRSLIN
83 intbuf_tab(ni)%ADDSUBS(1:nsn+1) = 0
84 intbuf_tab(ni)%ADDSUBM(1:nrtm+1) = 0
86 intbuf_tab(ni)%INFLG_SUBS(1:nisubs)=0
87 intbuf_tab(ni)%INFLG_SUBM(1:nisubm)=0
95 isv = intbuf_tab(ni)%NSV(is)
102 id1=nom_opt(1,ninter+jsub)
103 CALL fretitl2(titr1, nom_opt(lnopt1-ltitr+1,ninter+jsub
104 IF(nom_opt(2,ninter+jsub)==noint
105 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
109 intbuf_tab(ni)%LISUB(ksub) = jsub
110 intbuf_tab(ni)%TYPSUB(ksub) = 1
117 jgrn =nom_opt(4,ninter+jsub)
118 nne =igrnod(jgrn)%NENTITY
121 isv=igrnod(jgrn)%ENTITY(i)
126 . anmode=aninfo_blind_1,
132 intbuf_tab(ni)%ADDSUBS(is) =
133 . intbuf_tab(ni)%ADDSUBS(is
140 isu =nom_opt(4,ninter+jsub)
143 isu =nom_opt(3,ninter+jsub)
147 nne =igrsurf(isu)%NSEG
152 in = igrsurf(isu)%NODES(i,j)
157 IF (tagnod(in)==0)
THEN
158 intbuf_tab(ni)%ADDSUBS(is) = intbuf_tab(ni)%ADDSUBS(is)+1
164 IF ((km==0).AND.(nt19==-1))
THEN
167 . anmode=aninfo_blind_1,
170 . i2=itab(igrsurf(isu)%NODES(i
171 . i3=itab(igrsurf(isu)%NODES(i,2)),
173 . i5=itab(igrsurf(isu)%NODES(i,4)),
182 ELSEIF(nom_opt(2,ninter+jsub) == 0
183 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
188 intbuf_tab(ni)%LISUB (ksub) = jsub
195 isu2 =nom_opt(6,ninter+jsub) ! surface
id 2
197 intbuf_tab(ni)%TYPSUB(ksub) = 2
199 DO i=1,igrsurf(isu2)%NSEG
201 in=igrsurf(isu2)%NODES(i,k)
203 IF(is/=0.AND.tagnod(in)==0)
THEN
204 intbuf_tab(ni)%ADDSUBS(is) =
205 . intbuf_tab(ni)%ADDSUBS(is)+1
212 isu1 =nom_opt(3,ninter+jsub)
214 intbuf_tab(ni)%TYPSUB(ksub) = 3
216 DO i=1,igrsurf(isu1)%NSEG
218 in=igrsurf(isu1)%NODES(i,k)
220 IF(is/=0.AND.tagnod(in)==0)
THEN
221 intbuf_tab(ni)%ADDSUBS(is) =
222 . intbuf_tab(ni)%ADDSUBS(is)+1
239 next = cur+intbuf_tab(ni)%ADDSUBS(is)
240 intbuf_tab(ni)%ADDSUBS(is)= cur
243 intbuf_tab(ni)%ADDSUBS(1+nsn)=cur
247 kad(is)=intbuf_tab(ni)%ADDSUBS(is)
255 IF(nom_opt(2,ninter+jsub)==noint
256 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
264 jgrn =nom_opt(4,ninter+jsub)
265 nne =igrnod(jgrn)%NENTITY
267 isv=igrnod(jgrn)%ENTITY(i)
270 intbuf_tab(ni)%LISUBS(kad(is))=ksub
278 isu =nom_opt(4,ninter+jsub)
281 isu =nom_opt(3,ninter+jsub)
285 nne =igrsurf(isu)%NSEG
288 in = igrsurf(isu)%NODES(i,j)
290 IF ((is/=0).AND.(tagnod(in)==0))
THEN
291 intbuf_tab(ni)%LISUBS(kad(is))=ksub
302 ELSEIF(nom_opt(2,ninter+jsub) == 0
303 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
312 isu2 =nom_opt(6,ninter+jsub)
315 DO i=1,igrsurf(isu2)%NSEG
317 in=igrsurf(isu2)%NODES(i,k)
320 IF(tagnod(in)==0)
THEN
321 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
322 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),0)
323 intbuf_tab(ni)%LISUBS(kad(is))=ksub
327 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
328 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),0)
336 isu1 =nom_opt(3,ninter+jsub)
339 DO i=1,igrsurf(isu1)%NSEG
341 in=igrsurf(isu1)%NODES(i,k)
344 IF(tagnod(in)==0)
THEN
345 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
346 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),1)
347 intbuf_tab(ni)%LISUBS(kad(is))=ksub
351 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
352 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),1)
369 in =intbuf_tab(ni)%IRECTM(4*(im-1)+1)
371 in =intbuf_tab(ni)%IRECTM(4*(im-1)+2)
373 in =intbuf_tab(ni)%IRECTM(4*(im-1)+3)
375 in =intbuf_tab(ni)%IRECTM(4*(im-1)+4)
394 in =intbuf_tab(ni)%IRECTM(4*(im-1)+1)
395 nod2rtm(kad(in)) = im
396 kad(in) = kad(in) + 1
397 in =intbuf_tab(ni)%IRECTM(4*(im-1)+2)
398 nod2rtm(kad(in)) = im
399 kad(in) = kad(in) + 1
400 in =intbuf_tab(ni)%IRECTM(4*(im-1)+3)
401 nod2rtm(kad(in)) = im
402 kad(in) = kad(in) + 1
403 in =intbuf_tab(ni)%IRECTM(4*(im-1)+4)
404 nod2rtm(kad(in)) = im
405 kad(in) = kad(in) + 1
412 id1=nom_opt(1,ninter+jsub)
414 . nom_opt(lnopt1-ltitr+1,ninter+jsub),ltitr)
416 IF(nom_opt(2,ninter+jsub
417 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
423 isu =nom_opt(3,ninter+jsub)
426 isu =nom_opt(4,ninter+jsub)
428 nne =igrsurf(isu)%NSEG
432 in=igrsurf(isu)%NODES(i,1)
434 DO 110 jad=iadd(in),iadd(in+1)-1
438 IF(j==4.AND.ii==0)
THEN
442 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 100
455 . anmode=aninfo_blind_1,
458 . i2=itab(igrsurf(isu)%NODES(i,1)),
459 . i3=itab(igrsurf(isu)%NODES(i,2)),
460 . i4=itab(igrsurf(isu)%NODES(i,3)),
461 . i5=itab(igrsurf(isu)%NODES(i,4)),
463 ELSEIF (nt19==-1)
THEN
466 . anmode=aninfo_blind_1
469 . i2=itab(igrsurf(isu)%NODES(i,1)),
470 . i3=itab(igrsurf(isu)%NODES(i,2)),
471 . i4=itab(igrsurf(isu)%NODES(i,3)),
472 . i5=itab(igrsurf(isu)%NODES(i,4)),
475 ELSEIF(tagrtm(km)==0)
THEN
476 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km
486 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
492 isu1 =nom_opt(3,ninter+jsub)
495 intbuf_tab(ni)%TYPSUB(ksub) = 3
497 nne =igrsurf(isu1)%NSEG
499 in=igrsurf(isu1)%NODES(i,1)
502 DO jad=iadd(in),iadd(in+1)-1
506 ii=igrsurf(isu1)%NODES(i,j)
507 IF(j/=4.OR.ii/=0)
THEN
509 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
521 IF(km/=0.AND.tagrtm(km)==0)
THEN
522 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
530 isu2 =nom_opt(6,ninter+jsub)
534 nne =igrsurf(isu2)%NSEG
536 in=igrsurf(isu2)%NODES(i,1)
539 DO jad=iadd(in),iadd(in+1)-1
543 ii=igrsurf(isu2)%NODES(i,j)
544 IF(j/=4.OR.ii/=0)
THEN
546 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
559 IF(tagrtm(km)==0)
THEN
560 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
576 next =cur+intbuf_tab(ni)%ADDSUBM(im)
577 intbuf_tab(ni)%ADDSUBM(im)=cur
580 intbuf_tab(ni)%ADDSUBM(nrtm0+1:nrtm+1)=cur
584 kad(im)=intbuf_tab(ni)%ADDSUBM(im)
592 IF(nom_opt(2,ninter+jsub)==noint
593 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
600 isu =nom_opt(3,ninter+jsub)
603 isu =nom_opt(4,ninter+jsub)
605 nne =igrsurf(isu)%NSEG
607 in=igrsurf(isu)%NODES(i,1)
609 DO 210 jad=iadd(in),iadd(in+1)-1
612 ii=igrsurf(isu)%NODES(i,j)
613 IF(j==4.AND.ii==0)
THEN
617 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 200
626 IF(km/=0.AND.tagrtm(im)==0)
THEN
627 intbuf_tab(ni)%LISUBM(kad(im))=ksub
636 ELSEIF(nom_opt(2,ninter+jsub) == 0
637 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
643 isu1 =nom_opt(3,ninter+jsub)
646 nne =igrsurf(isu1)%NSEG
648 in=igrsurf(isu1)%NODES(i,1)
651 DO jad=iadd(in),iadd(in
655 ii=igrsurf(isu1)%NODES(i,j)
656 IF(j/=4.OR.ii/=0)
THEN
658 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
669 IF(tagrtm(im)==0)
THEN
670 intbuf_tab(ni)%INFLG_SUBM(kad(im))=
671 . bitset(intbuf_tab(ni)%INFLG_SUBM
672 intbuf_tab(ni)%LISUBM(kad(im))=ksub
681 isu2 =nom_opt(6,ninter+jsub)
685 nne =igrsurf(isu2)%NSEG
687 in=igrsurf(isu2)%NODES(i,1)
690 DO jad=iadd(in),iadd(in+1)-1
694 ii=igrsurf(isu2)%NODES(i,j)
695 IF(j/=4.OR.ii/=0)
THEN
697 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
708 IF(tagrtm(im)==0)
THEN
709 intbuf_tab(ni)%INFLG_SUBM(kad(im))=
710 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)),0)
711 intbuf_tab(ni)%LISUBM(kad(im))=ksub
715 intbuf_tab(ni)%INFLG_SUBM(kad(im)-1)=
716 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)-1),0)