52 SUBROUTINE lecint(IPARI ,LINTER ,IPM ,BUFMAT ,
53 . NMNT ,ITAB ,ITABM1 ,GEO ,
54 . PM ,X ,IGRNOD ,IGRSURF ,IGRSLIN ,
55 . NPC ,PROBINT ,LAG_NCF ,
56 . LAG_NKF ,LAG_NCL ,LAG_NKL ,LAG_NHF ,MAXRTM ,
57 . ISKN ,MAXRTMS ,IGEO ,
58 . XFILTR ,STFAC ,FRIC_P ,FRIGAP ,
59 . I2RUPT ,AREASL ,UNITAB ,IXS ,NOM_OPT ,
60 . ITAG ,IXC ,IXTG ,KNOD2ELC,KNOD2ELTG,
61 . NOD2ELC ,NOD2ELTG,KNOD2ELS,NOD2ELS,IXS10 ,
62 . IXS16 ,IXS20 ,DEF_INTER,MAXNSNE,
63 . NPC1 ,MULTI_FVM,NOM_OPTFRIC,INTBUF_FRIC_TAB,
64 . IGRBRIC,IGRSH3N ,IGRTRUSS ,MAXRTM_T2,NSN_MULTI_CONNEC,T2_NB_CONNEC,
65 . IDDLEVEL,NALE ,INTERFACES,SNPC1 ,FLAG_ELEM_INTER25,LIST_NIN25)
78 USE i2_surfi_dim_mod ,
ONLY : i2_surfi_dim
79 use inter1_check_ale_lag_sides_mod ,
only : inter1_check_ale_lag_sides
80 use element_mod ,
only : nixs
84#include "implicit_f.inc"
93#include "tabsiz_c.inc"
97 INTEGER,
INTENT(IN) :: SNPC1
98 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
99 INTEGER,
INTENT(IN)::IDDLEVEL
100 INTEGER NOM_OPT(LNOPT1,*),MAXNSNE
101 INTEGER LINTER,NMNT, LAG_NCF,LAG_NKF,
102 . LAG_NCL,LAG_NKL,LAG_NHF,MAXRTM,MAXRTMS, NBRIC
103 INTEGER IPARI(NPARI,), ITAB(SITAB), ITABM1(SITABM1),
104 . NPC(SNPC),ISKN(SISKWN),
105 . IGEO(NPROPGI,NUMGEO),IXS(NIXS,NUMELS),ITAG(*),
106 . IXC(*),IXTG(*),KNOD2ELC(*),KNOD2ELTG(*),
107 . NOD2ELC(*),NOD2ELTG(*),KNOD2ELS(*),NOD2ELS(*),
108 . IXS10(6,*), IXS16(8,*), IXS20(12,*),DEF_INTER(100),
109 . NPC1(SNPC1),NOM_OPTFRIC(LNOPT1,*),MAXRTM_T2,
110 . t2_nb_connec(*),nsn_multi_connec
111 INTEGER,
INTENT(IN) :: NALE(NUMNOD)
112 INTEGER,
INTENT(INOUT) :: LIST_NIN25(NINTER)
113 INTEGER,
INTENT(INOUT) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
115 . geo(npropg,numgeo), pm(*), xfiltr(*),stfac(*),
116 . fric_p(10,ninter),
i2rupt(6,ninter),frigap(nparir,ninter),areasl(*)
119 TYPE(multi_fvm_struct),
INTENT(IN) :: MULTI_FVM
120 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
121 INTEGER,
INTENT(IN) :: IPM(NPROPMI,NUMMAT)
122 my_real,
INTENT(IN) :: BUFMAT(SBUFMAT)
124 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
125 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
126 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
127 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
128 TYPE (SURF_) ,
DIMENSION(NSURF) ,
TARGET :: IGRSURF
129 TYPE (SURF_) ,
DIMENSION(NSLIN) ,
TARGET :: IGRSLIN
130 TYPE (INTERFACES_) ,
INTENT(INOUT):: INTERFACES
134 INTEGER I,K,L,IRS,IRM,NI,NSN,NMN,
135 . ntyp,is1,is2,noint,nrts,nrtm,ibuc,ilev,
136 . multimp,igap,inacti,nme,lag_nc16,lag_nk16,
137 . ilagm,ncf_i2,nuvar,
138 . nin,nisub,jsub,igr,isu,isu1,isu2,pid,stat,
139 . nrtms,nrtmm,iallo,nlinsa,nlinma,nsne,nln,
140 . nrts_new, nrtm_new,nrtm_fe,
141 . nrtm_ige,nrtmm_ige,
142 . nrts_ige,nrtms_ige,nrts_fe,
143 . nmn_ige,nmn_fe,nsn_ige,nsn_fe,iad_ige,
144 . iedge,nconte,multimpe,multimps,istiff,nin25
145 INTEGER KD(50),JD(50),IBID,NRTM_SH,ETYP,INTPLY
146 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IRECTS,IRECTM,NSV,MSR
147 INTEGER ID,ISL, GRBRIC_ID
148 CHARACTER(LEN=NCHARTITLE) :: TITR
149 my_real RBID,AUTO_RHO,AUTO_LENGTH, STIFF_STAT(3)
151 INTEGER,
DIMENSION(:),
ALLOCATABLE,
TARGET :: NTAG_TARGET
152 INTEGER,
DIMENSION(:),
POINTER :: NTAG
153 INTEGER,
DIMENSION(:,:),
POINTER :: SURF_NODES,SURF_NODES_IGE,LINE_NODES
154 LOGICAL IS_GAP_COMPUTED,TYPE18
155 INTEGER S_MSR,S_NSV,S_IRECTS,S_IRECTM
157 DATA MESS/
'INTERFACE INPUT '/
161 INTEGER,
EXTERNAL :: NINTRI
259 ALLOCATE(ntag_target(2*numnod+1), stat=stat)
260 ntag(0:2*numnod) => ntag_target(1:2*numnod+1)
283 inacti = ipari(22,ni)
284 multimp = ipari(23,ni)
287 multimps= ipari(89,ni)
289 is1 = ipari(13,ni)/10
290 is2 = mod(ipari(13,ni),10)
294 istiff = ipari(29,ni)
297 IF(ntyp==7 .AND. inacti==7 )type18=.true.
299 IF(type18)grbric_id = ipari(83,ni)
314 nrts_ige=igrsurf(isu1)%NSEG_IGE
315 nrts_fe =igrsurf(isu1)%NSEG
316 nrts = nrts_fe + nrts_ige
317 ELSEIF(is1 == 2)
THEN
318 nsn_fe=igrnod(isu1)%NENTITY
321 nrts_fe=igrslin(isu1)%NSEG
325 ELSEIF(is1 == 5)
THEN
326 nsn_fe=igrbric(isu1)%NENTITY
330 nrtm_ige=igrsurf(isu2)%NSEG_IGE
331 nrtm_fe =igrsurf(isu2)%NSEG
332 nrtm = nrtm_fe + nrtm_ige
334 nrtm_fe=igrslin(isu2)%NSEG
337 nrtm_ige=igrsurf(isu2)%NSEG_IGE
338 nrtm_fe=igrsurf(isu2)%NSEG
339 nrtm = nrtm_fe + nrtm_ige
351 ipari(73,ni) = nrtm_ige
352 ipari(74,ni) = nrtm_fe
353 ipari(75,ni) = nrts_ige
354 ipari(76,ni) = nrts_fe
355 ipari(77,ni) = nsn_ige
356 ipari(78,ni) = nsn_fe
357 ipari(79,ni) = nmn_ige
358 ipari(80,ni) = nmn_fe
360 IF (ntyp == 2 .AND. is1==-1.AND. is2==-1)
THEN
361 CALL i2_surfi_dim( npari ,ipari(1,ni),nsurf ,igrsurf ,
362 1 nsn ,nrtm ,nmn ,frigap(4,ni) ,
369 ELSEIF (ntyp == 14)
THEN
370 nmnt =
max(nmnt,4*numnod)
371 ELSEIF (ntyp == 15)
THEN
372 nmnt =
max(nmnt,9*numnod+12*numels+2*numelc+2*numeltg)
373 ELSEIF(ntyp == 16)
THEN
374 nsn =igrnod(isu1)%NENTITY
375 nme =igrbric(isu2)%NENTITY
382 nmnt =
max(nmnt,4*(nme+100)+ 2*nsn )
383 ELSEIF(ntyp == 17)
THEN
384 nsn =igrbric(isu1)%NENTITY
385 nme =igrbric(isu2)%NENTITY
390 nmnt =
max(nmnt, 4*(nme+100)+ 4*(nsn+100))
391 IF(ipari(33,ni)==0)
THEN
392 imaximp = imaximp + (multimp*nsn*16)/5 + 1
407 ELSEIF(ntyp == 20)
THEN
409 CALL i20surfi(iallo ,ipari(1,ni),igrnod ,igrsurf ,
410 2 igrslin ,ibid ,frigap(1,ni),
411 3 ibid ,ibid ,ibid ,ibid ,
412 4 ibid ,ibid ,ibid ,ibid ,
413 5 ibid ,ibid ,x ,ibid ,
421 ELSEIF(ntyp == 24)
THEN
424 1 iallo ,ipari(1,ni) ,igrnod ,igrsurf ,
425 2 ibid ,frigap(1,ni) ,
426 3 ibid ,ibid ,itab ,x ,
427 4 ibid ,ibid ,ibid ,ibid ,
428 5 ibid ,itag ,intply ,ixc ,
429 6 ixtg ,knod2elc ,knod2eltg ,nod2elc ,
430 7 nod2eltg ,knod2els ,nod2els ,ixs ,
431 8 ixs10 ,ixs16 ,ixs20 ,ibid ,
432 9 ibid ,ibid ,ibid ,ipari(86,ni) )
434 IF(intply > 0) intplyxfem = 1
445 ELSEIF(ntyp == 25)
THEN
449 list_nin25(ni) = nin25
451 1 iallo ,ipari(1,ni) ,igrnod ,igrsurf ,
452 2 ibid ,frigap(1,ni) ,
453 3 ibid ,ibid ,itab ,x ,
454 4 ibid ,ibid ,ibid ,ibid ,
455 5 ibid ,itag ,intply ,ixc ,
456 6 ixtg ,knod2elc ,knod2eltg ,nod2elc ,
457 7 nod2eltg ,knod2els ,nod2els ,ixs ,
458 8 ixs10 ,ixs16 ,ixs20 ,ibid ,
459 9 ibid ,ibid ,ibid ,interfaces%PARAMETERS,
460 a nin25 ,flag_elem_inter25)
461 ipari(66,ni) = intply
462 IF(intply > 0) intplyxfem = 1
484 IF(nom_opt(2,ninter+jsub) == noint .AND. nom_opt(5,ninter+jsub) == 1)
THEN
486 igr =nom_opt(4,ninter+jsub)
487 isu1 =nom_opt(3,ninter+jsub)
488 isu2 =nom_opt(6,ninter+jsub)
489 IF(igr/=0)ipari(37,ni)=ipari(37,ni)+igrnod(igr)%NENTITY
491 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
492 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu2)%NSEG
494 ipari(90,ni)=ipari(90,ni)+4*igrsurf(isu2)%NSEG
498 ipari(38,ni)=ipari(38,ni)+igrsurf(isu1)%NSEG
499 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu1)%NSEG
501 ipari(90,ni)=ipari(90,ni)+4*igrsurf(isu1)%NSEG
508 IF(nom_opt(2,ninter+jsub) == 0 .AND. nom_opt(5,ninter+jsub) == 1)
THEN
510 isu1 =nom_opt(3,ninter+jsub)
511 isu2 =nom_opt(6,ninter+jsub)
513 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu2)%NSEG
514 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
516 ipari(90,ni)=ipari(90,ni)+4*igrsurf(isu2)%NSEG
520 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu1)%NSEG
521 ipari(38,ni)=ipari(38,ni)+igrsurf(isu1)%NSEG
523 ipari(90,ni)=ipari(90,ni)+4*igrsurf(isu1)%NSEG
535 IF(nom_opt(2,ninter+jsub) == noint .AND. nom_opt(5,ninter+jsub) == 1)
THEN
537 igr =nom_opt(4,ninter+jsub)
538 isu1 =nom_opt(3,ninter+jsub)
539 isu2 =nom_opt(6,ninter+jsub)
540 IF(igr/=0)ipari(37,ni)=ipari(37,ni)+igrnod(igr)%NENTITY
542 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
543 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu2)%NSEG
544 IF(ipari(55,ni)/=0)
THEN
545 ipari(37,ni)=ipari(37,ni)+4*3*igrsurf(isu2)%NSEG
549 ipari(38,ni)=ipari(38,ni)+igrsurf(isu1)%NSEG
550 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu1)%NSEG
551 IF(ipari(55,ni)/=0)
THEN
552 ipari(37,ni)=ipari(37,ni)+4*3*igrsurf(isu1)%NSEG
559 IF(nom_opt(2,ninter+jsub) == 0 .AND. nom_opt(5,ninter+jsub) == 1)
THEN
561 isu1 =nom_opt(3,ninter+jsub)
562 isu2 =nom_opt(6,ninter+jsub)
564 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu2)%NSEG
565 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
566 IF(ipari(55,ni)/=0)
THEN
567 ipari(37,ni)=ipari(37,ni)+4*3*igrsurf(isu2)%NSEG
571 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu1)%NSEG
572 ipari(38,ni)=ipari(38,ni)+igrsurf(isu1)%NSEG
573 IF(ipari(55,ni)/=0)
THEN
574 ipari(37,ni)=ipari(37,ni)+4*3*igrsurf(isu1)%NSEG
581 ELSEIF(ntyp==7.OR.ntyp==10.OR.ntyp==20
588 IF(nom_opt(2,ninter+jsub) == noint .AND. nom_opt(5,ninter+jsub) == 1)
THEN
590 IF (ipari(71,ni) == 0)
THEN
591 igr =nom_opt(4,ninter+jsub)
592 ipari(37,ni)=ipari(37,ni)+igrnod(igr)%NENTITY
593 isu =nom_opt(3,ninter+jsub)
594 ipari(38,ni)=ipari(38,ni)+igrsurf(isu)%NSEG
595 ELSEIF (ipari(71,ni) == -1)
THEN
597 isu1 =nom_opt(4,ninter+jsub)
598 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu1)%NSEG
599 isu2 =nom_opt(3,ninter+jsub)
600 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
603 isu1 =nom_opt(3,ninter+jsub)
604 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu1)%NSEG
605 isu2 =nom_opt(4,ninter+jsub)
606 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
612 IF(nom_opt(2,ninter+jsub) == 0 .AND. nom_opt(5,ninter+jsub) == 1)
THEN
614 isu1 =nom_opt(3,ninter+jsub)
615 isu2 =nom_opt(6,ninter+jsub)
617 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu2)%NSEG
618 ipari(38,ni)=ipari(38,ni)+igrsurf(isu2)%NSEG
621 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu1)%NSEG
622 ipari(38,ni)=ipari(38,ni)+igrsurf(isu1)%NSEG
629 ELSEIF (ntyp == 11)
THEN
632 IF(nom_opt(2,ninter+jsub) == noint .AND. nom_opt(5,ninter+jsub) == 1)
THEN
634 IF (ipari(71,ni) == 0)
THEN
635 isu1 =nom_opt(4,ninter+jsub)
636 ipari(37,ni)=ipari(37,ni)+igrslin(isu1)%NSEG
637 isu2 =nom_opt(3,ninter+jsub)
638 ipari(38,ni)=ipari(38,ni)+igrslin(isu2)%NSEG
641 isu1 =nom_opt(4,ninter+jsub)
642 ipari(37,ni)=ipari(37,ni)+4*igrsurf(isu1)%NSEG
643 isu2 =nom_opt(3,ninter+jsub)
644 ipari(38,ni)=ipari(38,ni)+4*igrsurf(isu2)%NSEG
650 IF(nom_opt(2,ninter+jsub) == 0 .AND. nom_opt(5,ninter+jsub) == 1)
THEN
652 isu1 =nom_opt(3,ninter+jsub)
653 isu2 =nom_opt(6,ninter+jsub)
655 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu2)%NSEG
656 ipari(38,ni) = ipari(38,ni) + 4* igrsurf(isu2)%NSEG
659 ipari(38,ni)=ipari(38,ni)+4*igrsurf(isu1)%NSEG
660 ipari(37,ni) = ipari(37,ni) + 4* igrsurf(isu1)%NSEG
669 nrtms =
max(nrtms,nrts_fe+nrts_ige)
670 nrtmm =
max(nrtmm,nrtm_fe+nrtm_ige)
671 nrtms_ige =
max(nrtms_ige,nrts_ige)
672 nrtmm_ige =
max(nrtmm_ige,nrtm_ige)
674 nrtms =
max(nrtms,2*nrts)
675 nrtmm =
max(nrtmm,2*nrtm)
682 ALLOCATE (irects(s_irects) ,stat=stat)
683 ALLOCATE (irectm(s_irectm) ,stat=stat)
684 s_nsv=
max(numnod,nrtms_ige*16)
685 ALLOCATE (nsv(s_nsv) ,stat=stat)
686 s_msr=
max(numnod,nrtmm_ige*16)
687 ALLOCATE (msr(s_msr) ,stat=stat)
688 IF (stat /= 0)
CALL ancmsg(msgid=268, anmode=aninfo, msgtype=msgerror, c1=
'IRECTS')
707 is1 = ipari(13,ni)/10
709 inacti = ipari(22,ni)
711 is2 = mod(ipari(13,ni),10)
718 IF(ntyp==7 .AND. inacti==7 )type18=.true.
720 IF(type18)grbric_id = ipari(83,ni)
725 nrtm_ige = ipari(73,ni)
726 nrtm_fe = ipari(74,ni)
727 nrts_ige = ipari(75,ni)
728 nrts_fe = ipari(76,ni)
729 nsn_ige = ipari(77,ni)
730 nsn_fe = ipari(78,ni)
731 nmn_ige = ipari(79,ni)
732 nmn_fe = ipari(80,ni)
745 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,ni),ltitr)
751 IF(grbric_id > 0)
THEN
752 nbric = igrbric(grbric_id)%NENTITY
753 IF (multi_fvm%IS_USED)
THEN
758 nbric=igrbric(isu1)%NENTITY
759 CALL ingrbric_nodes(nsn_fe ,igrbric(grbric_id)%ENTITY ,itab ,nsv ,
760 . ixs , nbric, nale ,ipm, bufmat,s_nsv)
768 ipari(78,ni) = nsn_fe
770 IF(grbric_id > 0)
THEN
771 is_gap_computed = .false.
772 CALL ingrbric_dx(nbric , igrbric(grbric_id)%ENTITY, frigap(2,ni) , ixs , x ,
773 . noint , titr , is_gap_computed, pm , ipm
774 . iddlevel, istiff , auto_rho , auto_length,
776 IF(is_gap_computed)
THEN
777 WRITE(iout,1000)noint
778 WRITE(iout,3020)frigap(2,ni)
784 ELSEIF ( ntyp/=15.and.ntyp/=17.and.ntyp/=20.and.ntyp/=22.and.
785 . ntyp/=23.and.ntyp/=24.and.ntyp/=25)
THEN
788 IF(nrts_fe == 0.AND.nrts_ige == 0.AND.is1 /= 2.AND.is1 /= 5 .AND. is1 /=-1)
THEN
789 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
792 IF (ntyp == 3 .OR. ntyp == 6) irs = ipari(25,ni)
793 surf_nodes => igrsurf(isu1)%NODES(1:nrts_fe,1:4)
794 CALL insurf(nrts_fe,nsn_fe,irs,irects,
795 . surf_nodes,itab,nsv,id,titr,
796 . ntag,s_nsv,s_irects,type18)
797 IF (igrsurf(isu1)%NSEG_IGE >= 1)
THEN
798 surf_nodes_ige => igrsurf(isu1)%NODES_IGE(1:nrts_ige,1:4)
799 iad_ige = igrsurf(isu1)%IAD_IGE
800 CALL insurfigeo(nrts_ige,nrts_fe,nsn_ige,0,iad_ige,irm,irects,noint,
801 . surf_nodes_ige,itab,nsv,id,titr,
802 . ibid,rbid,rbid,rbid,ibid,rbid,rbid,rbid)
805 CALL inpoint(nsn_fe,noint,igrnod(isu1)%ENTITY,itab,nsv)
807 line_nodes => igrslin(isu1)%NODES(1:nrts,1:2)
808 CALL inslin(nrts,nsn_fe,irects,noint,
809 . line_nodes,itab,nsv,
813 nbric = igrbric(isu1)%NENTITY
814 CALL ingrbric(nsn, igrbric(isu1)%ENTITY, nsv,
815 . ixs, nbric, pm,s_nsv, igeo)
820 ipari(77,ni) = nsn_ige
821 ipari(78,ni) = nsn_fe
827 nbric=igrbric(isu1)%NENTITY
828 CALL ingrbric(nsn , igrbric(isu1)%ENTITY ,nsv
829 . ixs , nbric ,pm, s_nsv, igeo)
838 ELSEIF(ntyp==23)
THEN
840 IF(nrts == 0.AND.is1 /= 2)
THEN
841 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
844 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
845 CALL insurf23(nrts,nsn,irs,irects,noint,
846 . surf_nodes,itab,nsv,nrts_new,x,
862 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
866 ELSEIF ( ntyp == 15)
THEN
870 CALL ancmsg(msgid=118, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
872 surf_nodes => igrsurf(isu1)%NODES(1:nrts,1:4)
873 CALL insurf(nrts,nsn,irs,irects,
874 . surf_nodes,itab,nsv,id,titr,
875 . ntag,s_nsv,s_irects,type18)
879 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
883 ELSEIF ( ntyp == 20)
THEN
886 ELSEIF ( ntyp == 22)
THEN
888 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
889 CALL insurf(nrtm,nmn,irm,irectm,
890 . surf_nodes,itab,msr,id,titr,
891 . ntag,s_msr,s_irectm,type18)
893 ipari(33,ni) = igrsurf(isu2)%NSEG
894 ipari(4,ni) = igrsurf(isu2)%NSEG
896 ELSEIF( ntyp == 23)
THEN
899 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
902 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
903 CALL insurf23(nrtm,nmn,irm,irectm,noint,
904 . surf_nodes,itab,msr,nrtm_new,x,
911 ELSEIF ( ntyp == 24)
THEN
914 ELSEIF ( ntyp == 25)
THEN
918 IF (ntyp == 3 .OR. ntyp == 5 .OR.
919 . ntyp == 6 .OR. ntyp == 8) irm = ipari(24,ni)
921 IF(nrtm_fe == 0 .AND. nrtm_ige == 0)
THEN
922 CALL ancmsg(msgid=119, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr)
924 IF(ntyp == 2 .AND. is2 == -1)
THEN
927 surf_nodes => igrsurf(isu2)%NODES(1:nrtm_fe,1:4)
928 CALL insurf(nrtm_fe,nmn_fe,irm,irectm,
929 . surf_nodes,itab,msr,id,titr,
930 . ntag,s_msr,s_irectm,type18)
932 CALL inter1_check_ale_lag_sides(n2d, igrsurf(isu1)%ID, igrsurf(isu2)%ID, id, titr,
933 . numnod, itab, nrts_fe, nrtm_fe, irects, irectm,nale, iddlevel)
934 igrsurf(isu1)%NSEG = nrts_fe
935 igrsurf(isu2)%NSEG = nrtm_fe
936 ipari(74,ni) = nrtm_fe
937 ipari(76,ni) = nrts_fe
939 IF (igrsurf(isu2)%NSEG_IGE >= 1)
THEN
940 surf_nodes_ige => igrsurf(isu2)%NODES_IGE(1:nrtm_ige,1:4)
941 iad_ige = igrsurf(isu2)%IAD_IGE
942 CALL insurfigeo(nrtm_ige,nrtm_fe,nmn_ige,nsn_ige,iad_ige,irm,irectm,noint,
943 . surf_nodes_ige,itab,msr,id,titr,
944 . ibid,rbid,rbid,rbid,ibid,rbid,rbid,rbid)
947 line_nodes => igrslin(isu2)%NODES(1:nrtm,1:2)
948 CALL inslin(nrtm,nmn_fe,irectm,noint,
949 . line_nodes,itab,msr,
951 ELSEIF(is2 == 4)
THEN
952 surf_nodes => igrsurf(isu2)%NODES(1:nrtm_fe,1:4)
954 . surf_nodes,itab,msr,id,titr,
955 . ntag,s_msr,s_irectm,type18)
956 IF (igrsurf(isu2)%NSEG_IGE >= 1)
THEN
957 surf_nodes_ige => igrsurf(isu2)%NODES_IGE(1:nrtm_ige,1:4)
958 iad_ige = igrsurf(isu2)%IAD_IGE
959 CALL insurfigeo(nrtm_ige,nrtm_fe,nmn_ige,0,iad_ige,irm,irectm,noint,
960 . surf_nodes_ige,itab,msr,id,titr,
961 . ibid,rbid,rbid,rbid,ibid,rbid,rbid,rbid)
966 ipari(79,ni) = nmn_ige
971 IF(istiff == 2 .AND. isu2 > 0)
THEN
973 stiff_stat(2) = auto_rho
974 stiff_stat(3) = frigap(2,ni)
975 surf_nodes => igrsurf(isu2)%NODES(1:nrtm,1:4)
976 CALL insurf_dx(nrtm,nmn,irm,irectm,noint,
977 . surf_nodes,itab,msr,id,titr,
978 . ntag,s_msr,s_irectm,x, stiff_stat)
979 stfac(ni)=stiff_stat(1)
988 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
989 nmnt=max0(nmnt,6*nmn)
991 ELSEIF (ntyp == 2)
THEN
994 IF (ilev == 10 .OR. ilev == 11 .OR. ilev == 12)
THEN
995 pid = nintri(ipari(43,ni),igeo,npropgi,numgeo,1)
1004 ELSEIF (ilev == 27 . or . ilev == 28)
THEN
1007 nsn_multi_connec = nsn_multi_connec + nsn
1009 DO i=1,igrnod(isu1)%NENTITY
1010 isl = igrnod(isu1)%ENTITY(i)
1011 t2_nb_connec(isl) = t2_nb_connec(isl) + 1
1012 IF (t2_nb_connec(isl) == 2) nsn_multi_connec = nsn_multi_connec + 1
1019 lag_nhf = lag_nhf + ncf_i2*(ncf_i2-1)/2
1020 lag_ncf = lag_ncf + ncf_i2
1021 lag_nkf = lag_nkf + ncf_i2*13
1023 maxrtm_t2=
max(maxrtm_t2,nrtm)
1025 ELSEIF (ntyp == 3 )
THEN
1027 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1028 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1030 imaximp = imaximp + 2*nint(nmn/probint)
1032 ELSEIF (ntyp == 4)
THEN
1034 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1035 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1038 IF(ibuc /= 0)nmnt =max0(nmnt,14*nsn)
1039 imaximp = imaximp + 2*nint(nmn/probint)
1041 ELSEIF (ntyp == 5)
THEN
1043 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1044 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1045 imaximp = imaximp + 2*(nint(nmn/probint) + nint(nsn/probint))
1047 ELSEIF (ntyp == 6)
THEN
1049 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1050 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1051 imaximp = imaximp + 2*nint(nsn/probint)
1053 ELSEIF (ntyp == 7)
THEN
1055 ipari(18,ni) = nsn_fe+nsn_ige+nmn_fe+nmn_ige
1056 ipari(24,ni) = nsn_fe+nsn_ige
1057 ipari(25,ni) = nsn_fe+nsn_ige+nmn_fe+nmn_ige
1058 imaximp = imaximp + multimp*(nsn_fe+nsn_ige)
1059 nmnt =max0(nmnt,nsn_ige + 3)
1063 lag_nk16 = numnod*15
1064 nmnt =
max(nmnt, 4*(nmn+100)+ 2*(nsn_fe+nsn_ige) + lag_nc16 + 4*lag_nk16)
1067 maxrtm=
max(maxrtm,nrtm)
1069 ELSEIF (ntyp == 8)
THEN
1071 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1073 imaximp = imaximp + 2*nint(nsn/probint)
1075 ELSEIF (ntyp == 9)
THEN
1077 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1078 CALL presegmt(irectm,msr,nrtm,nmn,ipari(9,ni))
1080 nmnt=max0(nmnt,8*nmn)
1081 imaximp = imaximp + 2*nint(nmn/probint)
1083 ELSEIF (ntyp == 10)
THEN
1085 ipari(18,ni) = nsn+nmn
1087 ipari(25,ni) = nsn+nmn
1088 nmnt =max0(nmnt,nsn + 3)
1089 imaximp = imaximp + multimp*nsn
1090 maxrtm=
max(maxrtm,nrtm)
1092 ELSEIF (ntyp == 11)
THEN
1094 ipari(18,ni) = nsn+nmn
1096 ipari(25,ni) = nsn+nmn
1098 maxrtms=
max(maxrtms,nrts)
1099 imaximp = imaximp + multimp*nsn
1101 ELSEIF (ntyp == 12)
THEN
1103 CALL presegmt(irects,nsv,nrts,nsn,ipari(8,ni))
1105 nmnt=max0(nmnt,2*
ale%GLOBAL%NVCONV*nsn+nrtm+nmn*(
ale%GLOBAL%NVCONV+1),3*(nsn+nmn))
1106 IF(ipari(20,ni) == 1) nmnt=max0(nmnt,6*nmn)
1108 ELSEIF (ntyp == 14)
THEN
1110 imaximp = imaximp + 2*nint(nsn/probint/5)
1112 ELSEIF (ntyp == 15)
THEN
1114 imaximp = imaximp + 2*nint(nrts*4/probint/5)
1116 ELSEIF (ntyp == 18)
THEN
1119 ipari(18,ni) = nsn+nmn
1121 ipari(25,ni) = nsn+nmn
1122 imaximp = imaximp + multimp*nsn
1124 maxrtm=
max(maxrtm,nrtm)
1126 ELSEIF (ntyp == 20)
THEN
1128 ipari(18,ni) = nsn+nmn
1130 ipari(25,ni) = nsn+nmn
1131 imaximp = imaximp + multimp*nsn
1132 nmnt =max0(nmnt,nsn + 3)
1133 maxrtm=
max(maxrtm,nrtm)
1135 nlinsa = ipari(53,ni)
1136 nlinma = ipari(54,ni)
1138 nmnt =max0(nmnt,nsne + 3)
1139 maxrtm=
max(maxrtm,nlinma)
1140 maxrtms=
max(maxrtms,nlinma)
1141 maxrtms=
max(maxrtms,nlinsa)
1143 ELSEIF (ntyp == 21)
THEN
1147 ipari(18,ni) = nsn+nmn
1149 ipari(25,ni) = nsn+nmn
1150 imaximp = imaximp + multimp*nsn
1151 nmnt =max0(nmnt,nsn + 3)
1152 maxrtm=
max(maxrtm,nrtm)
1154 ELSEIF (ntyp == 22)
THEN
1156 ipari(18,ni) = nsn+nmn
1158 ipari(25,ni) = nsn+nmn
1159 imaximp = imaximp + multimp*nsn
1160 nmnt =max0(nmnt,nsn + 3)
1163 lag_nk16 = numnod*15
1164 nmnt =
max(nmnt, 4*(nmn+100)+ 2*nsn + lag_nc16 + 4*lag_nk16)
1166 maxrtm=
max(maxrtm,nrtm)
1168 ELSEIF (ntyp == 23)
THEN
1170 ipari(18,ni) = nsn+nmn
1172 ipari(25,ni) = nsn+nmn
1173 nmnt =max0(nmnt,nsn + 3)
1174 imaximp = imaximp + multimp*nsn
1175 maxrtm=
max(maxrtm,nrtm)
1177 ELSEIF (ntyp == 24)
THEN
1179 nrtm = nrtm+ipari(42,ni)
1181 ipari(18,ni) = nsn+nmn
1183 ipari(25,ni) = nsn+nmn
1184 imaximp = imaximp + multimp*nsn
1185 nmnt =max0(nmnt,nsn + 3)
1188 lag_nk16 = numnod*15
1189 nmnt =
max(nmnt, 4*(nmn+100)+ 2*nsn + lag_nc16 + 4*lag_nk16)
1191 maxrtm=
max(maxrtm,nrtm)
1192 maxnsne=
max(maxnsne,ipari(55,ni))
1194 ELSEIF (ntyp == 25)
THEN
1196 nrtm = nrtm+ipari(42,ni)
1198 ipari(18,ni) = nsn+nmn
1200 ipari(25,ni) = nsn+nmn
1214 imaximp = imaximp + multimp*nsn + multimpe*nconte + multimps*nconte
1218 lag_nk16 = numnod*15
1219 nmnt =
max(nmnt, 4*(nmn+100)+ 2*nsn + lag_nc16 + 4*lag_nk16)
1221 maxrtm=
max(maxrtm,nrtm)
1222 maxnsne=
max(maxnsne,ipari(55,ni))
1232 lag_ncl = lag_ncl + lag_nc16
1233 lag_nkl = lag_nkl + lag_nk16
1243 DEALLOCATE(ntag_target)
1245! inter18 : automatic gap
if not defined in input file
12461000
FORMAT(/1x,
' INTERFACE NUMBER :',i10,1x,a)
12473020
FORMAT(
' COMPUTED GAP VALUE. . . . . . . . . . . . . ',1pg20.13)