37 SUBROUTINE inintsub_25(ITAB ,IGRNOD ,IGRSURF ,NOM_OPT ,INTBUF_TAB,
38 . NRTM ,NRTM0 ,NSN ,NISUBS ,NISUBM ,
39 . NOINT ,NI ,NOD2NSV ,NOD2RTM ,KAD ,
40 . TAGNOD ,TAGRTM ,IADD ,NSNE ,NTY ,
50 USE get_edge_fic_node_mod ,
ONLY : get_edge_fic_node
54#include "implicit_f.inc"
63 INTEGER ITAB(*), NOD2NSV(*), NOD2RTM(*), KAD(*), (*), TAGRTM(*),
65 INTEGER NRTM, NRTM0, NSN, NISUBS, NISUBM, NOINT, NI
66 INTEGER NOM_OPT(LNOPT1,*)
67 INTEGER ,
INTENT(IN) :: NSNE, NTY, NRTSE
69 TYPE(intbuf_struct_) INTBUF_TAB(*)
73 INTEGER I,J,K,JGRN,ISU,ISU1,ISU2,
74 . JSUB, KSUB, NNE, IS, ISV, CUR, ID1,
75 . NEXT, IM, KM, JAD, IN, II, N,STAT,K1,K2,NT19,INOD,IFNRT,
76 . IS1,IS2,IS3,IS4,IE,IE1,IE2,NS,ISS1_1,ISS1_2,ISS2_1,ISS2_2,
77 . igrn_1,igrn_2,ns1,ns2
79 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
81 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
82 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
83 TYPE () ,
DIMENSION(NSLIN) :: IGRSLIN
87 DATA mess/
'SUB-INTERFACES FOR TH INITIALIZATIONS '/
99 intbuf_tab(ni)%ADDSUBS(1:nsn+1) = 0
100 intbuf_tab(ni)%ADDSUBM(1:nrtm+1) = 0
102 intbuf_tab(ni)%INFLG_SUBS(1:nisubs)=0
103 intbuf_tab(ni)%INFLG_SUBM(1:nisubm)=0
109 nod2nsv(1:numnod) = 0
111 isv = intbuf_tab(ni)%NSV(is)
112 IF (isv <= numnod) nod2nsv(isv)=is
117 id1=nom_opt(1,ninter+jsub)
119 . nom_opt(lnopt1-ltitr+1,ninter+jsub),ltitr)
123 IF(nom_opt(2,ninter+jsub)==noint
124 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
128 intbuf_tab(ni)%LISUB(ksub) = jsub
129 intbuf_tab(ni)%TYPSUB(ksub) = 1
136 jgrn =nom_opt(4,ninter+jsub)
140 in=igrnod(jgrn)%ENTITY(i)
144 . msgtype=msgwarning,
145 . anmode=aninfo_blind_1,
150 ELSEIF(
tagnod(in)==0)
THEN
151 intbuf_tab(ni)%ADDSUBS(is) =
152 . intbuf_tab(ni)%ADDSUBS(is)+1
158 isu2 =nom_opt(6,ninter+jsub)
161 isu1 =nom_opt(3,ninter+jsub)
162 nne =igrsurf(isu1)%NSEG
165 in = igrsurf(isu1)%NODES(i,j)
169 . msgtype=msgwarning,
170 . anmode=aninfo_blind_1,
175 ELSEIF (
tagnod(in)==0)
THEN
176 intbuf_tab(ni)%ADDSUBS(is) = intbuf_tab(ni)%ADDSUBS(is)+1
182 nne =igrsurf(isu2)%NSEG
185 in = igrsurf(isu2)%NODES(i,j)
189 . msgtype=msgwarning,
190 . anmode=aninfo_blind_1,
195 ELSEIF (
tagnod(in)==0)
THEN
196 intbuf_tab(ni)%ADDSUBS(is) = intbuf_tab(ni)%ADDSUBS(is)+1
206 ELSEIF(nom_opt(2,ninter+jsub) == 0
207 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
212 intbuf_tab(ni)%LISUB (ksub) = jsub
219 isu2 =nom_opt(6,ninter+jsub)
221 intbuf_tab(ni)%TYPSUB(ksub) = 2
222 DO i=1,igrsurf(isu2)%NSEG
224 in=igrsurf(isu2)%NODES(i,k)
226 IF(is/=0.AND.
tagnod(in)==0)
THEN
227 intbuf_tab(ni)%ADDSUBS(is) =
228 . intbuf_tab(ni)%ADDSUBS(is)+1
235 isu1 =nom_opt(3,ninter+jsub)
237 intbuf_tab(ni)%TYPSUB(ksub) = 3
238 DO i=1,igrsurf(isu1)%NSEG
240 in=igrsurf(isu1)%NODES(i,k)
242 IF(is/=0.AND.
tagnod(in)==0)
THEN
243 intbuf_tab(ni)%ADDSUBS(is) =
244 . intbuf_tab(ni)%ADDSUBS(is)+1
255 IF (nty==24.AND.nsne > 0)
THEN
257 isv = intbuf_tab(ni)%NSV(is)
260 CALL get_edge_fic_node(intbuf_tab(ni)%IRTSE , nsne ,intbuf_tab(ni)%IS2SE,intbuf_tab(ni)%IS2PT,
261 . ns , nrtse,is1 , is2 )
264 intbuf_tab(ni)%ADDSUBS(is) =
265 . intbuf_tab(ni)%ADDSUBS(is)+1
279 next = cur+intbuf_tab(ni)%ADDSUBS(is)
280 intbuf_tab(ni)%ADDSUBS(is)= cur
283 intbuf_tab(ni)%ADDSUBS(1+nsn)=cur
287 kad(is)=intbuf_tab(ni)%ADDSUBS(is)
297 IF(nom_opt(2,ninter+jsub)==noint
298 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
306 jgrn =nom_opt(4,ninter+jsub)
308 nne =igrnod(jgrn)%NENTITY
310 in=igrnod(jgrn)%ENTITY(i)
314 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
315 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),2)
316 intbuf_tab(ni)%LISUBS(kad(is))=ksub
319 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
320 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),2)
327 isu2 =nom_opt(6,ninter+jsub)
329 isu1 =nom_opt(3,ninter+jsub)
330 nne =igrsurf(isu1)%NSEG
333 in = igrsurf(isu1)%NODES(i,j)
337 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
338 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad
339 intbuf_tab(ni)%LISUBS(kad(is))=ksub
343 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
344 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),0)
350 nne =igrsurf(isu2)%NSEG
353 in = igrsurf(isu2)%NODES(i,j)
357 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
358 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),1)
359 intbuf_tab(ni)%LISUBS(kad(is))=ksub
363 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
364 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),1)
375 ELSEIF(nom_opt(2,ninter+jsub) == 0
376 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
385 isu2 =nom_opt(6,ninter+jsub)
388 DO i=1,igrsurf(isu2)%NSEG
390 in=igrsurf(isu2)%NODES(i,k)
394 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
395 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),0)
396 intbuf_tab(ni)%LISUBS(kad(is))=ksub
400 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
401 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),0)
409 isu1 =nom_opt(3,ninter+jsub)
412 DO i=1,igrsurf(isu1)%NSEG
414 in=igrsurf(isu1)%NODES(i,k)
418 intbuf_tab(ni)%INFLG_SUBS(kad(is))=
419 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),1)
420 intbuf_tab(ni)%LISUBS(kad(is))=ksub
424 intbuf_tab(ni)%INFLG_SUBS(kad(is)-1)=
425 . bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)-1),1)
434 IF (nty==24.AND.nsne > 0)
THEN
436 isv = intbuf_tab(ni)%NSV(is)
439 CALL get_edge_fic_node(intbuf_tab(ni)%IRTSE , nsne ,intbuf_tab(ni)%IS2SE,intbuf_tab(ni)%IS2PT,
440 . ns , nrtse,is1 , is2 )
446 iss1_1 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns1)-1),0)
447 iss2_1 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns1)-1),1)
448 igrn_1 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns1)-1),2)
450 iss1_2 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns2)-1),0)
451 iss2_2 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns2)-1),1)
452 igrn_2 = bitget(intbuf_tab(ni)%INFLG_SUBS(kad(ns2)-1),2)
455 IF(iss1_1 == 1.AND.iss1_2== 1) intbuf_tab(ni)%INFLG_SUBS(kad(is)) = bitset(intbuf_tab(ni)%INFLG_SUBS(kad
456 IF(iss2_1 == 1.AND.iss2_2== 1) intbuf_tab(ni)%INFLG_SUBS(kad(is)) = bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),1)
457 IF(igrn_1 == 1.AND.igrn_2== 1) intbuf_tab(ni)%INFLG_SUBS(kad(is)) = bitset(intbuf_tab(ni)%INFLG_SUBS(kad(is)),2)
458 intbuf_tab(ni)%LISUBS(kad(is))=ksub
480 in =intbuf_tab(ni)%IRECTM(4*(im-1)+1)
482 in =intbuf_tab(ni)%IRECTM(4*(im-1)+2)
484 in =intbuf_tab(ni)%IRECTM(4*(im-1)+3)
486 in =intbuf_tab(ni)%IRECTM(4*(im-1)+4)
505 in =intbuf_tab(ni)%IRECTM(4*(im-1)+1)
506 nod2rtm(kad(in)) = im
507 kad(in) = kad(in) + 1
508 in =intbuf_tab(ni)%IRECTM(4*(im-1)+2)
509 nod2rtm(kad(in)) = im
510 kad(in) = kad(in) + 1
511 in =intbuf_tab(ni)%IRECTM(4*(im-1)+3)
512 nod2rtm(kad(in)) = im
513 kad(in) = kad(in) + 1
514 in =intbuf_tab(ni)%IRECTM(4*(im-1)+4)
515 nod2rtm(kad(in)) = im
516 kad(in) = kad(in) + 1
523 id1=nom_opt(1,ninter+jsub)
525 . nom_opt(lnopt1-ltitr+1,ninter+jsub),ltitr)
527 IF(nom_opt(2,ninter+jsub)==noint
528 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
533 isu1 =nom_opt(3,ninter+jsub)
534 nne =igrsurf(isu1)%NSEG
536 in=igrsurf(isu1)%NODES(i,1)
539 DO 310 jad=iadd(in),iadd(in+1)-1
542 ii=igrsurf(isu1)%NODES(i,j)
543 IF(j==4.AND.ii==0)
THEN
547 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 300
560 . msgtype=msgwarning,
561 . anmode=aninfo_blind_1,
564 . i2=itab(igrsurf(isu1)%NODES(i,1)),
565 . i3=itab(igrsurf(isu1)%NODES(i,2)),
566 . i4=itab(igrsurf(isu1)%NODES(i,3)),
567 . i5=itab(igrsurf(isu1)%NODES(i,4)),
569 ELSEIF(tagrtm(km)==0)
THEN
570 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
575 isu2 =nom_opt(6,ninter+jsub)
577 nne =igrsurf(isu2)%NSEG
579 in=igrsurf(isu2)%NODES(i,1)
581 DO 360 jad=iadd(in),iadd(in+1)-1
584 ii=igrsurf(isu2)%NODES(i,j)
585 IF(j==4.AND.ii==0)
THEN
589 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 350
601 . msgtype=msgwarning,
602 . anmode=aninfo_blind_1,
605 . i2=itab(igrsurf(isu2)%NODES(i,1)),
606 . i3=itab(igrsurf(isu2)%NODES(i,2)),
607 . i4=itab(igrsurf(isu2)%NODES(i,3)),
608 . i5=itab(igrsurf(isu2)%NODES(i,4)),
610 ELSEIF(tagrtm(km)==0)
THEN
611 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
623 ELSEIF(nom_opt(2,ninter+jsub) == 0
624 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
630 isu1 =nom_opt(3,ninter+jsub)
634 nne =igrsurf(isu1)%NSEG
636 in=igrsurf(isu1)%NODES(i,1)
639 DO jad=iadd(in),iadd(in+1)-1
643 ii=igrsurf(isu1)%NODES(i,j)
644 IF(j/=4.OR.ii/=0)
THEN
646 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
657 IF(tagrtm(km)==0)
THEN
658 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
665 isu2 =nom_opt(6,ninter+jsub)
669 nne =igrsurf(isu2)%NSEG
671 in=igrsurf(isu2)%NODES(i,1)
674 DO jad=iadd(in),iadd(in+1)-1
678 ii=igrsurf(isu2)%NODES(i,j)
679 IF(j/=4.OR.ii/=0)
THEN
681 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
692 IF(tagrtm(km)==0)
THEN
693 intbuf_tab(ni)%ADDSUBM(km)=intbuf_tab(ni)%ADDSUBM(km)+1
706 next =cur+intbuf_tab(ni)%ADDSUBM(im)
707 intbuf_tab(ni)%ADDSUBM(im)=cur
710 intbuf_tab(ni)%ADDSUBM(nrtm0+1:nrtm+1)=cur
714 kad(im)=intbuf_tab(ni)%ADDSUBM(im)
721 IF(nom_opt(2,ninter+jsub)==noint
722 . .AND.nom_opt(5,ninter+jsub)==1)
THEN
727 isu1 =nom_opt(3,ninter+jsub)
728 nne =igrsurf(isu1)%NSEG
730 in=igrsurf(isu1)%NODES(i,1)
732 DO 410 jad=iadd(in),iadd(in+1)-1
735 ii=igrsurf(isu1)%NODES(i,j)
736 IF(j==4.AND.ii==0)
THEN
740 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 400
750 IF(tagrtm(im)==0)
THEN
751 intbuf_tab(ni)%INFLG_SUBM(kad(im))=
752 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)),0)
753 intbuf_tab(ni)%LISUBM(kad(im))=ksub
763 isu2 =nom_opt(6,ninter+jsub)
765 nne =igrsurf(isu2)%NSEG
767 in=igrsurf(isu2)%NODES(i,1)
769 DO 460 jad=iadd(in),iadd(in+1)-1
772 ii=igrsurf(isu2)%NODES(i,j)
773 IF(j==4.AND.ii==0)
THEN
777 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii)
GOTO 450
787 IF(tagrtm(im)==0)
THEN
788 intbuf_tab(ni)%INFLG_SUBM(kad(im))=
789 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)),1)
790 intbuf_tab(ni)%LISUBM(kad(im))=ksub
794 intbuf_tab(ni)%INFLG_SUBM(kad(im)-1)=
795 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)-1),1)
806 ELSEIF(nom_opt(2,ninter+jsub) == 0
807 . .AND. nom_opt(5,ninter+jsub) == 1)
THEN
814 isu1 =nom_opt(3,ninter+jsub)
817 nne =igrsurf(isu1)%NSEG
819 in=igrsurf(isu1)%NODES(i,1)
822 DO jad=iadd(in),iadd(in+1)-1
826 ii=igrsurf(isu1)%NODES(i,j)
827 IF(j/=4.OR.ii/=0)
THEN
829 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt
842 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)),1)
843 intbuf_tab(ni)%LISUBM(kad(im))=ksub
853 isu2 =nom_opt(6,ninter+jsub)
856 nne =igrsurf(isu2)%NSEG
858 in=igrsurf(isu2)%NODES(i,1)
861 DO jad=iadd(in),iadd(in+1)-1
865 ii=igrsurf(isu2)%NODES(i,j)
866 IF(j/=4.OR.ii/=0)
THEN
868 IF(intbuf_tab(ni)%IRECTM(4*(im-1)+k)==ii) ifnrt = ifnrt + 1
879 IF(tagrtm(im)==0)
THEN
880 intbuf_tab(ni)%INFLG_SUBM(kad(im
881 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)),0)
882 intbuf_tab(ni)%LISUBM(kad(im))=ksub
886 intbuf_tab(ni)%INFLG_SUBM(kad(im)-1)=
887 . bitset(intbuf_tab(ni)%INFLG_SUBM(kad(im)-1),0)