38 1 X ,IRECT ,STF ,IXS ,PM ,
39 2 GEO ,NRT ,IXC ,NINT ,STFAC ,
41 4 STFN ,NSN ,MS ,NSV ,IXTG ,
42 5 IGAP ,WA ,GAP_S ,GAP_M ,GAPMIN ,
43 6 GAPSCALE ,IXT ,IXP ,GAPINF ,GAPMAX_S ,
44 9 INACTI ,KNOD2ELS ,KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,
45 A NOD2ELC ,NOD2ELTG ,INTTH,
46 B IELES ,IELEM ,AREAS ,SH4TREE ,SH3TREE ,
47 C IPART ,IPARTC ,IPARTTG ,THK ,THK_PART ,
48 D IXR ,ITAB ,BGAPSMX ,IXS10 ,MSEGTYP ,
49 E NRT_SH ,IXS16 ,IXS20 ,GAP_N ,
50 F ILEV ,GAPMAX_M ,ID,TITR ,IGAP0 ,
51 G PEN_OLD ,IPARTS ,IGEO ,FILLSOL ,
52 H PM_STACK , IWORKSH ,PERCENT_SIZE,GAP_S_L ,GAP_M_L ,
53 I KNOD2EL1D ,NOD2EL1D ,INTFRIC ,TAGPRT_FRIC,IPARTFRICS,
54 J IPARTFRICM,INTBUF_FRIC_TAB,IVIS2 ,GAPM_MX ,GAPS_MX ,
55 K GAPM_L_MX ,GAPS_L_MX ,IPARTSM ,DRAD ,IPARTT ,
56 J IPARTP ,IPARTR ,IELEM_M ,IDEL_SOLID,ELEM_LINKED_TO_SEGMENT,
57 K NIN25 , FLAG_ELEM_INTER25)
66#include "implicit_f.inc"
73#include "remesh_c.inc"
80 INTEGER NRT, NINT, NTY, NOINT,NSN,IGAP,INTFRIC,
81 . inacti,nrt_sh ,ilev ,igap0,igeo(npropgi,*), ivis2
82 INTEGER IRECT(4,*), IXS(NIXS,*), IXC(NIXC,*),
83 . NSV(*), IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*),
84 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
86 . SH3TREE(KSH3TREE,*), SH4TREE(KSH4TREE,*),IXR(NIXR,*) ,
87 . IPART(LIPART1,*), IPARTC(*), IPARTTG(*),
88 . ITAB(*), IXS10(6,*),MSEGTYP(*), IXS16(*), IXS20(*),
89 . IWORKSH(3,*), KNOD2EL1D(*),NOD2EL1D(*),TAGPRT_FRIC(*),
90 . IPARTFRICS(*),IPARTFRICM(*),IPARTSM(*),IELES(*),IELEM(*)
93 . STFAC, GAP, GAPSCALE, GAPMIN,GAPINF, GAPMAX_S,BGAPSMX ,GAPMAX_M,
94 . PERCENT_SIZE, GAPM_MX, GAPS_MX, GAPS_L_MX, GAPM_L_MX,DRAD
97 . X(3,*), STF(*), PM(NPROPM,*), GEO(,*), STFN(*),
98 . MS(*),WA(*),GAP_S(*),GAP_M(*),GAP_N(4,*),
99 . AREAS(*),THK(*),THK_PART(*),PEN_OLD(5,NSN), FILLSOL(*),
100 . pm_stack(20,*),gap_s_l(*),gap_m_l(*)
102 INTEGER,
DIMENSION(NUMELT),
INTENT(IN) :: IPARTT
103 INTEGER,
DIMENSION(NUMELP),
INTENT(IN) :: IPARTP
104 INTEGER,
DIMENSION(NUMELR),
INTENT(IN) :: IPARTR
105 CHARACTER(LEN=NCHARTITLE) :: TITR
106 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
107 INTEGER ,
INTENT(INOUT) :: IDEL_SOLID
108 INTEGER ,
INTENT(INOUT) :: IELEM_M(2,NRT+NRT_SH)
109 INTEGER,
DIMENSION(NUMELS),
INTENT(INOUT)::
110 INTEGER,
INTENT(IN) :: NIN25
111 INTEGER,
INTENT(IN) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
115 INTEGER NDX, I, J, INRT, NELS, MT, JJ, JJJ, NELC,
116 . mg, num, npt, ll, l, nn, neltg,n1,n2,n3,n4,ie,
117 . ip, nlev, mylev, k, p, r, t,iad,
118 . ns,igtyp,nrtt,nnod,isubstack,ipfmax,ipl,
119 . ipflmax,ipg,nelem,stat
120 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGB
124 . dxm, gapmx, gapmn,
area, vol, dx, gapm, ddx,
125 . gaptmp, sx1,sy1,sz1,sx2,sy2,sz2,sx3,sy3,sz3,
126 . slsfac,xl,gaps_mn, stv
128 INTEGER,
DIMENSION(:),
ALLOCATABLE ::INRTIE
136 ALLOCATE(tagb(numnod))
164 nelem = numelc+numeltg+numels+numelr
165 + + numelp+numelt+numelq+numelr+numelx+numelig3d
166 ALLOCATE(inrtie(nelem),stat=stat)
167 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
183 IF(n1 /= n2 .AND. n1 /= 0)
184 . xl=
min(xl,sqrt((x(1,n1)-x(1,n2))**2+(x(2,n1)-x(2,n2))**2+
185 . (x(3,n1)-x(3,n2))**2))
188 gap_m_l(i)=
min(percent_size*xl,gapmax_m)
189 gapm_l_mx =
max(gapm_l_mx,gap_m_l(i))
192 wa(irect(j,i)) =
min(wa(irect(j,i)),percent_size*xl)
197 gap_s_l(i)=wa(nsv(i))
198 gap_s_l(i)=
min(gap_s_l(i),gapmax_s)
212 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
214 ELSEIF ( thk(i) /= zero .AND. iintthick == 0)
THEN
216 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp ==52)
THEN
221 wa(ixc(2,i))=
max(wa(ixc(2,i)),dx)
222 wa(ixc(3,i))=
max(wa(ixc(3,i)),dx)
223 wa(ixc(4,i))=
max(wa(ixc(4,i)),dx)
224 wa(ixc(5,i))=
max(wa(ixc(5,i)),dx)
230 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
232 ELSEIF ( thk(numelc+i) /= zero .AND.
THEN
233 dx=half*thk(numelc+i)
234 ELSEIF(igtyp == 17 .OR. igtyp
THEN
235 dx=half*thk(numelc+i)
239 wa(ixtg(2,i))=
max(wa(ixtg(2,i)),dx)
240 wa(ixtg(3,i))=
max(wa(ixtg(3,i)),dx)
241 wa(ixtg(4,i))=
max(wa(ixtg(4,i)),dx)
250 IF (msegtyp(i) /= 0)
THEN
258 IF (tagb(i)==0) wa(i)=0
265 IF ( thk_part(ip) > zero )
THEN
268 dx=half*sqrt(geo(1,mg))
270 wa(ixt(2,i))=
max(wa(ixt(2,i)),dx)
271 wa(ixt(3,i))=
max(wa(ixt(3,i)),dx)
276 IF ( thk_part(ip) > zero )
THEN
279 dx=half*sqrt(geo(1,mg))
281 wa(ixp(2,i))=
max(wa(ixp(2,i)),dx)
282 wa(ixp(3,i))=
max(wa(ixp(3,i)),dx)
286 IF ( thk_part(ip) > zero )
THEN
290 wa(ixr(2,i))=
max(wa(ixr(2,i)),dx)
291 wa(ixr(3,i))=
max(wa(ixr(3,i)),dx)
292 IF (igtyp==12) wa(ixr(4,i))=
max(wa(ixr(4,i)),dx)
296 gap_s(i)=gapscale * wa(nsv
297 gap_s(i)=
min(gap_s(i),gapmax_s)
306 CALL i25bord(nrt ,irect ,tagb )
316 IF( tagb(ns) > 0 ) gap_s(i) = zero
322 gaps_mx=
max(gaps_mx,gap_s(i))
323 gaps_mn=
min(gaps_mn,gap_s(i))
325 gaps_mx =
max(gaps_mx,gap_s(i))
326 gaps_l_mx =
max(gaps_l_mx,gap_s_l(i))
327 gaps_mn =
min(gaps_mn,gap_s(i),gap_s_l(i))
340 DO j= knod2els(nsv(i))+1,knod2els(nsv(i)+1)
343 ipg = tagprt_fric(ip)
344 IF(ipg > 0.AND.ip>ipfmax)
THEN
346 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
347 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
363 IF(numelc/=0.OR.numeltg/=0)
THEN
367 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
370 ipg = tagprt_fric(ip)
371 IF(ipg > 0.AND.ip>ipfmax)
THEN
373 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
374 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
382 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
385 ipg = tagprt_fric(ip)
386 IF(ipg > 0.AND.ip>ipfmax)
THEN
388 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
389 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
399 ipartfrics(i) = ipflmax
414 1 x ,irect ,stf ,ixs ,pm ,
415 2 geo ,nrt ,ixc ,nint ,stfac ,
416 3 nty ,gap ,noint ,stfn ,nsn ,
417 4 ms ,nsv ,ixtg ,igap ,gap_m ,
420 9 knod2els ,knod2elc ,knod2eltg ,nod2els ,
421 a nod2elc,nod2eltg ,intth,
422 b ieles ,ielem ,areas ,sh4tree ,sh3tree ,
423 c ipart ,ipartc ,iparttg ,thk ,thk_part ,
424 d ixr ,itab ,bgapsmx ,ixs10 ,msegtyp ,
425 e ixs16 ,ixs20 ,gap_n ,gaps_mx ,gapm_mx ,
426 f gapmx , gapmn ,gapscale ,gapmax_m,
428 h pm_stack, iworksh,intfric,tagprt_fric,ipartfrics,
429 i ipartfricm,iparts,intbuf_fric_tab,ipartsm,inrtie,
431 k nin25 ,flag_elem_inter25 )
436 gapmx=
min(gapmx,gapmax_m)
443 gapmin =
min(half*gapmx,gapmin)
456 gapmx=
max(gapmx,gap_m(i))
457 gapmn=
min(gapmn,gap_m(i))
461 WRITE(iout,1400)gaps_mn,gaps_mx
462 WRITE(iout,1500)gapmn,gapm_mx
468 gap =
min(gaps_mx+gapm_mx,gaps_l_mx+gapm_l_mx)
470 gap = gaps_mx+gapm_mx
484 bgapsmx =
max(bgapsmx,gap_s(i))
489 IF(msegtyp(i)/=0) gapinf =
min(gapinf,gap_m(i))
491 gapinf=
max(gapinf,gapmin)
494 CALL insol3et(x ,irect ,ixs ,nint ,nels,i ,
495 .
area ,noint ,knod2els,nod2els,ixs10 ,
499 gap_n(1,i) = three*one_over_8*gap_n(1,i)
500 stf(i) = sixteen*stf(i)
501 ELSEIF (nnod==16)
THEN
502 gap_n(1,i) = gap_n(1,i)/4
507 1 x ,irect ,nrt ,nsn ,nsv ,pen_old,stf )
510 IF(intth > 0 .OR. ivis2==-1)
THEN
517 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
519 sx1 = x(1,ixc(4,ie)) - x(1,ixc(2,ie))
520 sy1 = x(2,ixc(4,ie)) - x(2,ixc(2,ie))
521 sz1 = x(3,ixc(4,ie)) - x
522 sx2 = x(1,ixc(5,ie)) - x(1,ixc(3,ie))
523 sy2 = x(2,ixc(5,ie)) - x(2,ixc(3,ie))
524 sz2 = x(3,ixc(5,ie)) - x(3,ixc(3,ie))
525 sx3 = sy1*sz2 - sz1*sy2
526 sy3 = sz1*sx2 - sx1*sz2
527 sz3 = sx1*sy2 - sy1*sx2
529 . + one_over_8*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
536 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
538 sx1 = x(1,ixtg(3,ie)) - x(1,ixtg(2,ie))
539 sy1 = x(2,ixtg(3,ie)) - x(2,ixtg(2,ie))
540 sz1 = x(3,ixtg(3,ie)) - x(3,ixtg(2,ie))
541 sx2 = x(1,ixtg(4,ie)) - x(1,ixtg(2,ie))
542 sy2 = x(2,ixtg(4,ie)) - x(2,ixtg(2,ie))
543 sz2 = x(3,ixtg(4,ie)) - x(3,ixtg(2,ie))
544 sx3 = sy1*sz2 - sz1*sy2
545 sy3 = sz1*sx2 - sx1*sz2
546 sz3 = sx1*sy2 - sy1*sx2
548 . + one_over_6*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
551 ieles(i) = ixtg(1,ie)
558 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
564 IF(mylev < 0) mylev=-(mylev+1)
567 sx1 = x(1,ixc(4,ie)) - x(1,ixc(2,ie))
568 sy1 = x(2,ixc(4,ie)) - x(2,ixc(2,ie))
569 sz1 = x(3,ixc(4,ie)) - x(3,ixc(2,ie))
570 sx2 = x(1,ixc(5,ie)) - x(1,ixc(3,ie))
571 sy2 = x(2,ixc(5,ie)) - x(2,ixc(3,ie))
572 sz2 = x(3,ixc(5,ie)) - x(3,ixc(3,ie))
573 sx3 = sy1*sz2 - sz1*sy2
574 sy3 = sz1*sx2 - sx1*sz2
575 sz3 = sx1*sy2 - sy1*sx2
577 . + one_over_8*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
586 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
592 IF(mylev < 0) mylev=-(mylev+1)
595 sx1 = x(1,ixtg(3,ie)) - x(1,ixtg(2,ie))
596 sy1 = x(2,ixtg(3,ie)) - x(2,ixtg(2,ie))
597 sz1 = x(3,ixtg(3,ie)) - x(3,ixtg(2,ie))
598 sx2 = x(1,ixtg(4,ie)) - x(1,ixtg(2,ie))
599 sy2 = x(2,ixtg(4,ie)) - x(2,ixtg(2,ie))
600 sz2 = x(3,ixtg(4,ie)) - x(3,ixtg(2,ie))
601 sx3 = sy1*sz2 - sz1*sy2
602 sy3 = sz1*sx2 - sx1*sz2
603 sz3 = sx1*sy2 - sy1*sx2
605 . + one_over_6*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
608 ieles(i) = ixtg(1,ie)
625 DO j= knod2els(nsv(i))+1,knod2els(nsv(i)+1)
635 sx1 = x(1,n3) - x(1,n1)
636 sy1 = x(2,n3) - x(2,n1)
637 sz1 = x(3,n3) - x(3,n1)
638 sx2 = x(1,n4) - x(1,n2)
639 sy2 = x(2,n4) - x(2,n2)
640 sz2 = x(3,n4) - x(3,n2)
641 sx3 = sy1*sz2 - sz1*sy2
642 sy3 = sz1*sx2 - sx1*sz2
643 sz3 = sx1*sy2 - sy1*sx2
644 area = one_over_8*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
645 areas(i) = areas(i) +
area
649 sx1 = x(1,n2) - x(1,n1)
650 sy1 = x(2,n2) - x(2,n1)
651 sz1 = x(3,n2) - x(3,n1)
652 sx2 = x(1,n3) - x(1,n1)
653 sy2 = x(2,n3) - x(2,n1)
654 sz2 = x(3,n3) - x(3,n1)
655 sx3 = sy1*sz2 - sz1*sy2
656 sy3 = sz1*sx2 - sx1*sz2
657 sz3 = sx1*sy2 - sy1*sx2
658 area = one_over_6*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
659 areas(i) = areas(i) +
area
682 . msgtype=msgwarning,
683 . anmode=aninfo_blind_2,
692 IF(intth > 0)
DEALLOCATE(inrtie)
697 1300
FORMAT(2x,
'GAP MIN = ',1pg20.13)
698 1400
FORMAT(2x,
'MIN,MAX OF SECONDARY GAP: ',2(1pg20.13))
699 1500
FORMAT(2x,
'MIN,MAX OF MAIN GAP: ',2(1pg20.13)/)
700 2001
FORMAT(2x,
'Maximum distance for radiation computation = ',
718 1 X ,IRECT ,STF ,IXS ,PM ,
719 2 GEO ,NRT ,IXC ,NINT ,STFAC ,
720 3 NTY ,GAP ,NOINT ,STFN ,NSN ,
721 4 MS ,NSV ,IXTG ,IGAP ,GAP_M ,
724 9 KNOD2ELS ,KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,
725 A NOD2ELC,NOD2ELTG ,INTTH,
726 B IELES ,IELEM ,AREAS ,SH4TREE ,SH3TREE ,
727 C IPART ,IPARTC ,IPARTTG ,THK ,THK_PART ,
728 D IXR ,ITAB ,BGAPSMX ,IXS10 ,MSEGTYP ,
729 E IXS16 ,IXS20 ,GAP_N ,GAPS1 ,GAPS2 ,
730 F GAPMX , GAPMN ,GAPSCALE ,GAPMAX_M,
731 G ID ,TITR ,IGEO ,FILLSOL ,NRTT ,
732 H PM_STACK, IWORKSH,INTFRIC,TAGPRT_FRIC,IPARTFRICS,
733 I IPARTFRICM,IPARTS,INTBUF_FRIC_TAB,IPARTSM,INRTIE,
734 J IVIS2 ,IELEM_M ,IDEL_SOLID,ELEM_LINKED_TO_SEGMENT,
735 F NIN25 ,FLAG_ELEM_INTER25)
744#include "implicit_f.inc"
748#include "com01_c.inc"
749#include
"com04_c.inc"
750#include "param_c.inc"
751#include "scr17_c.inc"
752#include "scr08_c.inc"
756 INTEGER NRT, NINT, NTY, NOINT,NSN,IGAP, NDX,INTFRIC
757 INTEGER IRECT(4,*), IXS(NIXS,*), IXC(NIXC,*),
758 . NSV(*), IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*),
759 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
760 . NOD2ELTG(*), IELES(*), INTTH, IELEM(*),
761 . SH3TREE(KSH3TREE,*), SH4TREE(KSH4TREE,*),IXR(NIXR,*) ,
762 . IPART(LIPART1,*), IPARTC(*), IPARTTG(*),IPARTS(*),
763 . ITAB(*), IXS10(6,*),MSEGTYP(*), IXS16(*), IXS20(*),
764 . IGEO(NPROPGI,*),NRTT,IWORKSH(3,*),TAGPRT_FRIC(*),IPARTFRICS(*),
765 . IPARTFRICM(*) ,IPARTSM(*),INRTIE(*)
766 INTEGER ,
INTENT(IN) :: IVIS2
768 . STFAC, GAP,BGAPSMX,GAPS1 ,GAPS2,GAPMX ,GAPMN ,GAPSCALE
770 . X(3,*), STF(*), PM(NPROPM,*), GEO(NPROPG,*), STFN(*),
771 . MS(*),GAP_M(*),GAP_N(4,*),
772 . AREAS(*),THK(*),THK_PART(*),SLSFAC,DXM ,GAPMAX_M, FILLSOL(*),
775 CHARACTER(LEN=NCHARTITLE) :: TITR
776 TYPE(intbuf_fric_struct_) INTBUF_FRIC_TAB(*)
777 INTEGER ,
INTENT(INOUT) :: IELEM_M(2,NRTT)
778 INTEGER ,
INTENT(INOUT) :: IDEL_SOLID
779 INTEGER,
DIMENSION(NUMELS),
INTENT(INOUT):: ELEM_LINKED_TO_SEGMENT
780 INTEGER,
INTENT(IN) :: NIN25
781 INTEGER,
INTENT(INOUT) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
785 INTEGER I, J, INRT, NELS, MT, JJ, JJJ, NELC,
786 . MG, NUM, NPT, LL, L, NN, NELTG,N1,N2,N3,N4,IE,
787 . IP, NLEV, MYLEV, K, P, R, T,IAD,NREV,,IPGMAT,IGMAT,
788 . ISUBSTACK,IPL,IPG,ISOL,NINV,NSOL_INT,NELS2,MT2,OFC,OFTG,ICONTR
789 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGELEMS,INDEXE
790 LOGICAL :: PRINT_ERROR
791 INTEGER,
DIMENSION(4) :: NODE_ID
794 .
area, vol, dx, gapm, ddx,
795 . gaptmp, sx1,sy1,sz1,sx2,sy2,sz2,sx3,sy3,sz3,
796 . xl,stifc, stv, stc,stf2,stf1,vol2,bulk
803 oftg=ofc+numelc+numelt+numelp+numelr
807 CALL my_alloc(tagelems,numels)
809 CALL my_alloc(indexe,numels)
818 IF(intth > 0 ) ielem(i) = 0
819 IF(slsfac<zero)stf(i)=slsfac
822 CALL i4gmx3(x,irect,i,gapmx)
826 print_error = .false.
827 CALL insol3d(x,irect,ixs,nint,nels,i ,
828 .
area,noint,knod2els ,nod2els ,0,
829 . ixs10,ixs16,ixs20,tagelems,indexe,
830 . ninv ,ielem_m(1,i),
831 . elem_linked_to_segment ,print_error,
832 . nin25,nty, flag_elem_inter25 )
835 node_id(1:4) = itab(irect(1:4,i))
838 . msgtype=msgwarning,
839 . anmode=aninfo_blind_1,
853 IF(intth > 0 ) ielem(i) = mt
854 IF(intth > 0 ) inrtie(nels) = i
868 stf(i)=slsfac*fillsol(nels)*
area*
area*bulk/vol
869 IF(ielem_m(2,i) > 0)
THEN
879 stf2 = slsfac*fillsol(nels2)*
area*
area*pm(32,mt2)/vol2
881 stf(i) = half*(stf2+stf1)
886 . msgtype=msgwarning,
887 . anmode=aninfo_blind_2,
896 . msgtype=msgwarning,
897 . anmode=aninfo_blind_2,
907 IF(ielem_m(2,i) > 0) gap_n(1,i) = half*(gap_n(1,i) + vol2/
area)
908 IF(ielem_m(2,i) > 0) nsol_int = nsol_int + 1
910 IF(nels>numels8.AND.nels<=numels8+numels10)
THEN
911 gap_n(1,i) = three*one_over_8*gap_n(1,i)
912 stf(i) = sixteen*stf(i)
913 ELSEIF(nels>numels8+numels10+numels20.AND.nels<=numels8+numels10+numels20+numels16)
THEN
914 gap_n(1,i) = gap_n(1,i)/4
920 ipg = tagprt_fric(ip)
923 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
924 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
930 IF(ielem_m(2,i) > 0) stf(i) = - stf(i)
937 CALL incoq3(irect,ixc ,ixtg ,nint ,nelc ,
938 . neltg,i ,geo ,pm ,knod2elc ,
939 . knod2eltg ,nod2elc ,nod2eltg,thk,nty,igeo,
940 . pm_stack , iworksh)
947 ielem_m(1,i) = oftg+neltg
949 IF(intth > 0 ) ielem(i) = mt
950 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
951 dx=thk_part(ip)*gapscale
952 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
953 dx=thk(numelc+neltg)*gapscale
954 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52)
THEN
955 dx=thk(numelc+neltg)*gapscale
957 dx=geo(1,mg)*gapscale
960 gaps2=
max(gaps2,gapm)
961 gapmn =
min(gapmn,dx)
964 gap_m(i)=
max(gap_m(i),gapm)
968 ipg = tagprt_fric(ip)
971 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
972 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
979 IF(igtyp ==11 .AND. igmat > 0 )
THEN
980 IF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
981 stc=slsfac*thk(numelc+neltg)*geo(ipgmat + 2 ,mg)
983 stc=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
985 ELSEIF(igtyp ==52.OR.
986 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
987 isubstack = iworksh(3,numelc+neltg)
988 stc=slsfac*thk(numelc+neltg)*pm_stack(2 ,isubstack)
990 IF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
991 stc=slsfac*thk(numelc+neltg)*pm(20,mt)
992 ELSEIF(igtyp == 17 .OR. igtyp == 51)
THEN
993 stc=slsfac*thk(numelc+neltg)*pm(20,mt)
995 stc=slsfac*geo(1,mg)*pm(20,mt)
999 stf(i)=
max(stf(i),stc)
1000 IF (msegtyp(i) > 0)
THEN
1002 IF(j > nrtt) j=j-nrtt
1005 IF(intth > 0 ) ielem(j) = ielem(i)
1006 IF(intfric > 0) ipartfricm(j)=ipartfricm(i)
1007 ielem_m(1,j) = ielem_m(1,i)
1013 . msgtype=msgwarning,
1014 . anmode=aninfo_blind_2,
1017 . i2=ixtg(nixtg,neltg),
1023 . msgtype=msgwarning,
1024 . anmode=aninfo_blind_2,
1027 . i2=ixtg(nixtg,neltg),
1032 ELSEIF(nelc/=0)
THEN
1038 ielem_m(1,i) = ofc+nelc
1040 IF(intth > 0 ) ielem(i) = mt
1041 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
1042 dx=thk_part(ip)*gapscale
1043 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
1044 dx=thk(nelc)*gapscale
1045 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52)
THEN
1046 dx=thk(nelc)*gapscale
1048 dx=geo(1,mg)*gapscale
1051 gaps2=
max(gaps2,gapm)
1052 gapmn =
min(gapmn,dx)
1055 gap_m(i)=
max(gap_m(i),gapm)
1057 IF(intfric > 0)
THEN
1059 ipg = tagprt_fric(ip)
1062 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
1063 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
1070 IF(igtyp == 11 .AND. igmat > 0)
THEN
1071 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
1072 stc=slsfac*thk(nelc)*geo(ipgmat + 2 ,mg)
1074 stc=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
1076 ELSEIF(igtyp ==52.OR.
1077 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
1078 isubstack = iworksh(3,nelc)
1079 stc=slsfac*thk(nelc)*pm_stack(2,isubstack)
1081 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
1082 stc=slsfac*thk(nelc)*pm(20,mt)
1083 ELSEIF(igtyp == 17 .OR. igtyp == 51)
THEN
1084 stc=slsfac*thk(nelc)*pm(20,mt)
1086 stc=slsfac*geo(1,mg)*pm(20,mt)
1091 IF (msegtyp(i) > 0)
THEN
1093 IF(j > nrtt) j=j-nrtt
1096 IF(intth > 0 ) ielem(j) = ielem(i)
1097 IF(intfric > 0) ipartfricm(j)=ipartfricm(i)
1098 ielem_m(1,j) = ielem_m(1,i)
1104 . msgtype=msgwarning,
1105 . anmode=aninfo_blind_2,
1108 . i2=ixc(nixc,nelc),
1114 . msgtype=msgwarning,
1115 . anmode=aninfo_blind_2,
1118 . i2=ixc(nixc,nelc),
1125 IF(nels+nelc+neltg==0)
THEN
1130 . anmode=aninfo_blind_2,
1138 . anmode=aninfo_blind_2,
1146 IF(numels > 0)
DEALLOCATE(tagelems,indexe)
1149 . msgtype=msgwarning,
1150 . anmode=aninfo_blind_1,
1155 . msgtype=msgwarning,
1156 . anmode=aninfo_blind_1,
1160 IF(ninv > 0 .AND.nint>0)
1161 .
CALL ancmsg(msgid=3023,
1162 . msgtype=msgwarning,
1163 . anmode=aninfo_blind_1,
1168 IF(ninv > 0 .AND.nint< 0)
1169 .
CALL ancmsg(msgid=3025,
1170 . msgtype=msgwarning,
1171 . anmode=aninfo_blind_1,
1176 IF(ivis2 ==-1.AND.isol /=0)
THEN
1179 . anmode=aninfo_blind_2,
1185 gap_m(i)=
min(gap_m(i),gapmax_m)
1188 IF(nsol_int == 0)
THEN
1194 1400
FORMAT(i10,
' MAIN SEGMENTS',
' OF INTERFACE',i10,
1195 +
' ARE REVERSED THE NORMAL DIRECTION')
subroutine i24sti3(x, irect, stf, ixs, pm, geo, nrt, ixc, nint, stfac, nty, gap, noint, stfn, nsn, ms, nsv, ixtg, igap, wa, gap_s, gap_m, gapmin, ixt, ixp, gapinf, gapmax_s, inacti, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf, intth, ieles, ielec, areas, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, ixr, itab, bgapsmx, ixs10, msegtyp, nrt_sh, ixs16, ixs20, gap_n, mvoisn, ilev, igrsurf2, gapmax_m, id, titr, igap0, pen_old, ipartns, iparts, igeo, fillsol, pm_stack, iworksh, intfric, tagprt_fric, ipartfrics, ipartfricm, intbuf_fric_tab, intnitsche, nrts, irects, ielnrts, adrects, facnrts, nmn, msr, ipartt, ipartp, ipartr, elem_linked_to_segment, igsti, flag_elem_inter25)
subroutine i25gapm(x, irect, stf, ixs, pm, geo, nrt, ixc, nint, stfac, nty, gap, noint, stfn, nsn, ms, nsv, ixtg, igap, gap_m, ixt, ixp, slsfac, dxm, ndx, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, intth, ieles, ielem, areas, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, ixr, itab, bgapsmx, ixs10, msegtyp, ixs16, ixs20, gap_n, gaps1, gaps2, gapmx, gapmn, gapscale, gapmax_m, id, titr, igeo, fillsol, nrtt, pm_stack, iworksh, intfric, tagprt_fric, ipartfrics, ipartfricm, iparts, intbuf_fric_tab, ipartsm, inrtie, ivis2, ielem_m, idel_solid, elem_linked_to_segment, nin25, flag_elem_inter25)
subroutine i25sti3(x, irect, stf, ixs, pm, geo, nrt, ixc, nint, stfac, nty, gap, noint, stfn, nsn, ms, nsv, ixtg, igap, wa, gap_s, gap_m, gapmin, gapscale, ixt, ixp, gapinf, gapmax_s, inacti, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, intth, ieles, ielem, areas, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, ixr, itab, bgapsmx, ixs10, msegtyp, nrt_sh, ixs16, ixs20, gap_n, ilev, gapmax_m, id, titr, igap0, pen_old, iparts, igeo, fillsol, pm_stack, iworksh, percent_size, gap_s_l, gap_m_l, knod2el1d, nod2el1d, intfric, tagprt_fric, ipartfrics, ipartfricm, intbuf_fric_tab, ivis2, gapm_mx, gaps_mx, gapm_l_mx, gaps_l_mx, ipartsm, drad, ipartt, ipartp, ipartr, ielem_m, idel_solid, elem_linked_to_segment, nin25, flag_elem_inter25)