43 1 X ,IRECT ,STF ,IXS ,PM ,
44 2 GEO ,NRT ,IXC ,NINTR ,SLSFAC ,
45 3 NTY ,GAPMAX ,NOINT ,GAP_SM ,
46 4 MS ,IXTG ,IXT ,IXP ,IXR ,
47 5 IGAP ,GAPMIN ,GAP0 ,GAPINF ,IPARTC ,
48 6 IPARTTG ,THK ,THK_PART ,PERCENT_SIZE ,GAP_L ,
49 7 NOD2EL1D ,KNOD2EL1D ,ITAB ,IXS10 ,ID,TITR ,
50 8 KXX ,IXX ,IGEO ,KNOD2ELS ,KNOD2ELC,
51 9 KNOD2ELTG,NOD2ELS ,NOD2ELC ,NOD2ELTG ,LELX ,
52 A FILLSOL ,INTTH ,DRAD ,AREA ,IELEC ,
53 B PM_STACK ,IWORKSH ,IT19 ,BGAPSMX ,INTFRIC ,
54 C IPARTS ,TAGPRT_FRIC,IPARTFRIC,INTBUF_FRIC_TAB,
55 D IPARTT ,IPARTP ,IPARTX ,IPARTR ,IREM_GAP)
73 use element_mod ,
only :nixs,nixc,nixtg,nixt,nixp,nixr
77#include "implicit_f.inc"
91 INTEGER,
INTENT(IN) :: NRT, NINTR, NTY, NOINT,IGAP,INTTH,INTFRIC,IREM_GAP
92 INTEGER,
INTENT(IN) :: IRECT(2,*), IXS(NIXS,NUMELS), IXC(NIXC,NUMELC),
93 . IXTG(NIXTG,NUMELTG),IXT(NIXT,NUMELT),IXP(NIXP,NUMELP),IXR(NIXR,NUMELR),
94 . IPARTC(NUMELC), IPARTTG(NUMELTG),NOD2EL1D(*),KNOD2EL1D(*),ITAB(NUMNOD),
95 . IXS10(6,*),KXX(NIXX,*),IXX(*),IGEO(NPROPGI,NUMGEO),
96 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
97 . NOD2ELS(*), NOD2ELC(*), NOD2ELTG(*),IWORKSH(3,*),
98 . TAGPRT_FRIC(*),IPARTS(*),
99 . IPARTT(*) ,IPARTP(*) ,IPARTX(*) ,IPARTR(*)
100 INTEGER,
INTENT(INOUT) :: IPARTFRIC(*),IELEC(*)
101 INTEGER,
INTENT(IN) :: ID,IT19
102 my_real,
INTENT(IN) :: X(3,NUMNOD), PM(NPROPM,NUMMAT), GEO(NPROPG,NUMGEO),
103 . MS(*),THK(*),THK_PART(*),
104 . lelx(*), fillsol(*),pm_stack(20,*)
105 my_real,
INTENT(IN) :: slsfac,gap0,percent_size
106 my_real,
INTENT(INOUT) :: gap_l(*),stf(*),gap_sm(*),
area(*),drad,gapinf,gapmax,gapmin,bgapsmx
107 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
108 TYPE(INTBUF_FRIC_STRUCT_),
INTENT(IN) :: INTBUF_FRIC_TAB(*)
112 INTEGER NDX, I, INRT, NELS, MT, JJ, JJJ, NELC, J,
113 . mg, neltg,nelt,nelp,nelr,
114 . igtyp, ip,n1,n2,k,t,p,r,nelx,ipgmat,igmat,ie,
115 . jj1,jj2,iec,k1,k2,ipl,
116 . ie1(50,2),ie2(50,2),isubstack,ipg,n3,n4,n5,n6,n7,n8,icontr
117 my_real dxm, gapmx, gapmn, areass, vol, dx,gap1,gaps1,gaptmp,xl,
118 . sx1,sy1,sz1,sx2,sy2,sz2,sx3,sy3,sz3,
119 . x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5
120 . xx1(4),xx2(4), xx3(4) ,face(6),
121 . n_1, n_2, n_3,dx1,xl2,bulk
123 my_real,
EXTERNAL :: get_u_geo
143 CALL i11gmx3(x,irect,inrt,gapmx,xl2)
147 CALL i11sol(x,irect,ixs,nintr,nels,inrt,areass,noint,knod2els,nod2els,ixs10)
166 stf(i)=slsfac*fillsol(nels)*vol*bulk/xl2
172 CALL ancmsg(msgid=95,msgtype=msgwarning,anmode=aninfo_blind_2,
180 CALL ancmsg(msgid=96,msgtype=msgwarning,anmode=aninfo_blind_2,
192 ipg = tagprt_fric(ip)
195 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
196 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
197 ipartfric(inrt) = ipl
202 CALL i11coq(irect ,ixc ,ixtg ,nintr ,nelc ,
203 . neltg ,inrt ,geo ,pm ,thk ,
204 . igeo ,knod2elc,knod2eltg,nod2elc,nod2eltg,
212 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
214 ELSEIF (thk(numelc+neltg) /= zero .AND. iintthick ==0)
THEN
216 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
222 gaps1=
max(gaps1,gap_sm(i))
223 gapmn =
min(gapmn,dx)
227 IF(igtyp == 11 .AND. igmat > 0)
THEN
228 stf(i)=slsfac*dx*geo(ipgmat + 2 ,mg)
229 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
230 isubstack = iworksh(3,numelc+neltg)
231 stf(i)=slsfac*dx*pm_stack( 2 ,isubstack)
233 stf(i)=slsfac*dx*pm(20,mt)
237 CALL ancmsg(msgid=95,msgtype=msgwarning,anmode=aninfo_blind_2,
245 CALL ancmsg(msgid=96,msgtype=msgwarning,anmode=aninfo_blind_2,
258 ipg = tagprt_fric(ip)
261 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
262 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
263 ipartfric(inrt) = ipl
268 ELSEIF(nelc /= 0)
THEN
274 IF (thk_part(ip) /= zero .AND. iintthick == 0)
THEN
276 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0 )
THEN
278 ELSEIF(igtyp ==17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
284 gaps1=
max(gaps1,gap_sm(i))
285 gapmn =
min(gapmn,dx)
289 IF(igtyp == 11 .AND. igmat > 0)
THEN
290 stf(i)=slsfac*dx*geo(ipgmat + 2 ,mg)
291 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
292 isubstack = iworksh(3,nelc)
293 stf(i)=slsfac*dx*pm_stack( 2 ,isubstack)
295 stf(i)=slsfac*dx*pm(20,mt)
299 CALL ancmsg(msgid=95,msgtype=msgwarning,anmode=aninfo_blind_2,
307 CALL ancmsg(msgid=96,msgtype=msgwarning, anmode=aninfo_blind_2,
320 ipg = tagprt_fric(ip)
323 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
324 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
325 ipartfric(inrt) = ipl
330 CALL i11fil(irect,ixt ,ixp,ixr,nintr,nelt ,
331 . nelp,nelr,nelx,inrt,nod2el1d,
337 IF (thk_part(ip) > zero )
THEN
343 gap_sm(i)=
max(gap_sm(i),half*dx1)
344 gaps1=
max(gaps1,gap_sm(i))
345 gapmn =
min(gapmn,dx1)
349 stf(i)=slsfac*dx*pm(20,mt)
350 IF (nsubdom>0) stf(i)=slsfac*dx*pm_r2r(mt)
353 CALL ancmsg(msgid=95,msgtype=msgwarning,anmode=aninfo_blind_2,
361 CALL ancmsg(msgid=96,msgtype=msgwarning,anmode=aninfo_blind_2,
372 ipg = tagprt_fric(ip)
375 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
376 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl
377 ipartfric(inrt) = ipl
381 ELSEIF(nelp /= 0)
THEN
385 IF (thk_part(ip) > zero )
THEN
391 gap_sm(i)=
max(gap_sm(i),half*dx1)
392 gaps1=
max(gaps1,gap_sm(i))
393 gapmn =
min(gapmn,dx1)
397 stf(i)=slsfac*dx*pm(20,mt)
398 IF (nsubdom>0) stf(i)=slsfac*dx*pm_r2r(mt)
401 CALL ancmsg(msgid=95,msgtype=msgwarning,anmode=aninfo_blind_2,
409 CALL ancmsg(msgid=96,msgtype=msgwarning,anmode=aninfo_blind_2,
420 IPG = TAGPRT_FRIC(IP)
422 CALL FRICTION_PARTS_SEARCH (
423 . IPG,INTBUF_FRIC_TAB(INTFRIC)%S_TABPARTS_FRIC,
424 . INTBUF_FRIC_TAB(INTFRIC)%TABPARTS_FRIC,IPL )
425 IPARTFRIC(INRT) = IPL
429 ELSEIF(NELR /= 0) THEN
434 IF (THK_PART(IP) > ZERO ) THEN
436 GAP_SM(I)=MAX(GAP_SM(I),HALF*DX1)
437 GAPS1=MAX(GAPS1,GAP_SM(I))
438 GAPMN = MIN(GAPMN,DX1)
442 IGTYP=NINT(GEO(12,MG))
443.OR.
IF(IGTYP==4IGTYP==12)THEN
444 STF(I)=SLSFAC*GEO(2,MG)
445.OR.
ELSEIF(IGTYP==8IGTYP==13)THEN
446 STF(I)=SLSFAC*MAX(GEO(3,MG),GEO(10,MG),GEO(15,MG))
447 ELSEIF(IGTYP == 23)THEN
448 STF(I)=SLSFAC*MAX(PM(191,MT),PM(192,MT),PM(193,MT))
449 ELSEIF(IGTYP==25)THEN
450 STF(I)=SLSFAC*GEO(10,MG)
451 ELSEIF(IGTYP>=29)THEN
452 STF(I)=SLSFAC*GEO(3,MG)
454 WRITE(6,'(a)
') 'internal error 987
'
459 CALL ANCMSG(MSGID=95,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
467 CALL ANCMSG(MSGID=96,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
478 IPG = TAGPRT_FRIC(IP)
480 CALL FRICTION_PARTS_SEARCH (
481 . IPG,INTBUF_FRIC_TAB(INTFRIC)%S_TABPARTS_FRIC,
482 . INTBUF_FRIC_TAB(INTFRIC)%TABPARTS_FRIC,IPL )
483 IPARTFRIC(INRT) = IPL
487 ELSEIF(NELX /= 0) THEN
490 STF(I)=SLSFAC*GET_U_GEO(4,MG)*(KXX(3,NELX)-1)/LELX(NELX)
493 CALL ANCMSG(MSGID=95,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
501 CALL ANCMSG(MSGID=96,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
512 IPG = TAGPRT_FRIC(IP)
514 CALL FRICTION_PARTS_SEARCH (
515 . IPG,INTBUF_FRIC_TAB(INTFRIC)%S_TABPARTS_FRIC,
516 . INTBUF_FRIC_TAB(INTFRIC)%TABPARTS_FRIC,IPL )
517 IPARTFRIC(INRT) = IPL
523 IF(NELS+NELC+NELTG+NELT+NELP+NELR+NUMELX==0.)THEN
525 CALL ANCMSG(MSGID=481,MSGTYPE=MSGERROR,ANMODE=ANINFO_BLIND_2,
531 CALL ANCMSG(MSGID=482,MSGTYPE=MSGERROR,ANMODE=ANINFO_BLIND_2,
547.AND.
IF(N1 /= N2 N1 /= 0)
548 . XL=MIN(XL,SQRT((X(1,N1)-X(1,N2))**2+(X(2,N1)-X(2,N2))**2+
549 . (X(3,N1)-X(3,N2))**2))
553 DO K=KNOD2EL1D(N1)+1,KNOD2EL1D(N1+1)
554.AND.
IF (NOD2EL1D(K) <= NUMELT NOD2EL1D(K) /= ZERO) THEN
556 XL=MIN(XL,SQRT((X(1,IXT(2,T))-X(1,IXT(3,T)))**2+
557 . (X(2,IXT(2,T))-X(2,IXT(3,T)))**2+
558 . (X(3,IXT(2,T))-X(3,IXT(3,T)))**2))
559.AND.
ELSEIF (NOD2EL1D(K) <= NUMELT+NUMELP NOD2EL1D(K) /= ZERO) THEN
560 P = NOD2EL1D(K) - NUMELT
561 XL=MIN(XL,SQRT((X(1,IXP(2,P))-X(1,IXP(3,P)))**2+
562 . (X(2,IXP(2,P))-X(2,IXP(3,P)))**2+
563 . (X(3,IXP(2,P))-X(3,IXP(3,P)))**2))
564.AND.
ELSEIF (NOD2EL1D(K) <= NUMELT+NUMELP+NUMELR NOD2EL1D(K) /= ZERO) THEN
565 R = NOD2EL1D(K) - NUMELT - NUMELP
566 XL=MIN(XL,SQRT((X(1,IXR(2,R))-X(1,IXR(3,R)))**2+
567 . (X(2,IXR(2,R))-X(2,IXR(3,R)))**2+
568 . (X(3,IXR(2,R))-X(3,IXR(3,R)))**2))
573 GAP_L(I) = MIN(GAP_L(I),PERCENT_SIZE*XL)
589 GAP1 = MIN(HALF*GAPMX,DXM/NDX)
593.AND.
IF ((NINTR<0)(IT19==0)) WRITE(IOUT,1300)HALF*(GAPMIN+GAP1)
596 IF(NINTR < 0) GAP1 = HALF*(GAPMIN+GAP1)
600.AND.
IF ((GAP1 > HALF*GAPMX) (IREM_GAP /= 2)) THEN
602 CALL ANCMSG(MSGID=94,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
617 GAP1 = MIN(HALF*GAPMX,GAPMN)
621.AND.
IF ((NINTR<0) (IT19==0)) WRITE(IOUT,1300)HALF*(GAPMIN+GAP1)
628 GAPMIN = HALF*(GAPMIN+GAP1)
629 GAPMAX = MAX(GAPMAX+GAPS1,GAPMIN)
630 BGAPSMX = MAX(BGAPSMX,GAPS1)
633.AND..AND.
IF ((GAPMAX>HALF*GAPMX) (IGAP/=3) (IREM_GAP/=2))THEN
635 CALL ANCMSG(MSGID=94,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_2,
645 IF(SLSFAC < ZERO)THEN
656.OR.
ELSEIF(IGAP==1 IGAP==2) THEN
658 GAPINF = MIN(GAPINF,GAP_SM(I))
662 GAPINF = MIN(GAPINF,MIN(GAP_SM(I),GAP_L(I)))
670 ELSEIF(DRAD < GAP1)THEN
678 CALL ANCMSG(MSGID=918, MSGTYPE=MSGWARNING, ANMODE=ANINFO_BLIND_2,
689.OR.
IF(NELC /=0 NELTG /= 0) THEN
693 DO J=KNOD2ELC(IRECT(1,I))+1,KNOD2ELC(IRECT(1,I)+1)
695 IE1(JJ1,1) = NOD2ELC(J)
698 DO J= KNOD2ELTG(IRECT(1,I))+1,KNOD2ELTG(IRECT(1,I)+1)
700 IE1(JJ1,1) = NOD2ELTG(J)
704 DO J=KNOD2ELC(IRECT(2,I))+1,KNOD2ELC(IRECT(2,I)+1)
706 IE2(JJ2,1) = NOD2ELC(J)
709 DO J= KNOD2ELTG(IRECT(2,I))+1,KNOD2ELTG(IRECT(2,I)+1)
711 IE2(JJ2,1) = NOD2ELTG(J)
717 IF(IE1(J,1) == IE2(K,1)) THEN
721 SX1 = X(1,IXC(4,IE)) - X(1,IXC(2,IE))
722 SY1 = X(2,IXC(4,IE)) - X(2,IXC(2,IE))
723 SZ1 = X(3,IXC(4,IE)) - X(3,IXC(2,IE))
724 SX2 = X(1,IXC(5,IE)) - X(1,IXC(3,IE))
725 SY2 = X(2,IXC(5,IE)) - X(2,IXC(3,IE))
726 SZ2 = X(3,IXC(5,IE)) - X(3,IXc(3,IE))
727 SX3 = SY1*SZ2 - SZ1*SY2
728 SY3 = SZ1*SX2 - SX1*SZ2
729 SZ3 = SX1*SY2 - SY1*SX2
730 AREA(I) = AREA(I)+ ONE_OVER_8*SQRT(SX3*SX3+SY3*SY3+SZ3*SZ3)
734 IF(IE1(J,2) == 3) THEN
735 SX1 = X(1,IXTG(3,IE)) - X(1,IXTG(2,IE))
736 SY1 = X(2,IXTG(3,IE)) - X(2,IXTG(2,IE))
737 SZ1 = X(3,IXTG(3,IE)) - X(3,IXTG(2,IE))
738 SX2 = X(1,IXTG(4,IE)) - X(1,IXTG(2,IE))
739 SY2 = X(2,IXTG(4,IE)) - X(2,IXTG(2,IE))
740 SZ2 = X(3,IXTG(4,IE)) - X(3,IXTG(2,IE))
741 SX3 = SY1*SZ2 - SZ1*SY2
742 SY3 = SZ1*SX2 - SX1*SZ2
743 SZ3 = SX1*SY2 - SY1*SX2
744 AREA(I) = AREA(I) + ONE_OVER_6*SQRT(SX3*SX3+SY3*SY3+SZ3*SZ3)
745 IELEC(I) = IXTG(1,IE)
751 AREA(I) = HALF*SQRT(AREA(I))
754 AREA(I) = AREA(I)+HALF*DX
758 ELSEIF(NELS /= 0) THEN
762 DO J=KNOD2ELS(IRECT(1,I))+1,KNOD2ELS(IRECT(1,I)+1)
764 IE1(JJ1,1) = NOD2ELS(J)
767 DO J=KNOD2ELS(IRECT(2,I))+1,KNOD2ELS(IRECT(2,I)+1)
769 IE2(JJ2,1) = NOD2ELS(J)
774 IF(IE1(J,1) == IE2(K,1)) THEN
826 CALL NORMA1(N_1,N_2,N_3,FACE(1),XX1,XX2,XX3)
831 FACE(1) = FOURTH*FACE(1)
833 FACE(1) = THIRD*FACE(1)
848 CALL NORMA1(N_1,N_2,N_3,FACE(2),XX1,XX2,XX3)
853 FACE(2) = FOURTH*FACE(2)
855 FACE(2) = THIRD*FACE(2)
870 CALL NORMA1(N_1,N_2,N_3,FACE(3),XX1,XX2,XX3)
875 FACE(3) = FOURTH*FACE(3)
877 FACE(3) = THIRD*FACE(3)
892 CALL NORMA1(N_1,N_2,N_3,FACE(4),XX1,XX2,XX3)
897 FACE(4) = FOURTH*FACE(4)
899 FACE(4) = THIRD*FACE(4)
914 CALL NORMA1(N_1,N_2,N_3,FACE(5),XX1,XX2,XX3)
919 FACE(5) = FOURTH*FACE(5)
921 FACE(5) = THIRD*FACE(5)
936 CALL NORMA1(N_1,N_2,N_3,FACE(6),XX1,XX2,XX3)
941 FACE(6) = FOURTH*FACE(6)
943 FACE(6) = THIRD*FACE(6)
948.AND.
IF (N1 == IRECT(1,I)N2 == IRECT(2,I)) THEN
951.AND.
IF (K1 == 1 K2 == 2) THEN
952 AREA(I) = AREA(I) + (FACE(1)+FACE(5))
953.AND.
ELSEIF (K1 == 1 K2 == 4) THEN
954 AREA(I) = AREA(I) + (FACE(1)+FACE(4))
955.AND.
ELSEIF (K1 == 1 K2 == 5) THEN
956 AREA(I) = AREA(I) + (FACE(4)+FACE(5))
957.AND.
ELSEIF (K1 == 2 K2 == 3) THEN
958 AREA(I) = AREA(I) + (FACE(1)+FACE(3))
959.AND.
ELSEIF (K1 == 2 K2 == 6) THEN
960 AREA(I) = AREA(I) + (FACE(5)+FACE(3))
961.AND.
ELSEIF (K1 == 3 K2 == 4) THEN
962 AREA(I) = AREA(I) + (FACE(1)+FACE(6))
963.AND.
ELSEIF (K1 == 3 K2 == 7) THEN
964 AREA(I) = AREA(I) + (FACE(3)+FACE(6))
965.AND.
ELSEIF (K1 == 4 K2 == 1) THEN
966 AREA(I) = AREA(I) + (FACE(1)+FACE(4))
967.AND.
ELSEIF (K1 == 4 K2 == 8) THEN
968 AREA(I) = AREA(I) + (FACE(6)+FACE(4))
969.AND.
ELSEIF (K1 == 5 K2 == 6) THEN
970 AREA(I) = AREA(I) + (FACE(2)+FACE(5))
971.AND.
ELSEIF (K1 == 6 K2 == 7) THEN
972 AREA(I) = AREA(I) + (FACE(2)+FACE(5))
973.AND.
ELSEIF (K1 == 7 K2 == 8) THEN
974 AREA(I) = AREA(I) + (FACE(2)+FACE(6))
975.AND.
ELSEIF (K1 == 8 K2 == 5) THEN
976 AREA(I) = AREA(I) + (FACE(2)+FACE(4))
985 ELSEIF(NELP /= 0) THEN
989 DO J=KNOD2EL1D(IRECT(1,I))+1,KNOD2EL1D(IRECT(1,I)+1)
997 DO J=KNOD2EL1D(IRECT(2,I))+1,KNOD2EL1D(IRECT(2,I)+1)
1001 DX = SQRT(GEO(1,MG))
1002 AREA(I) = AREA(I)+DX
1004 AREA(I) = SQRT(AREA(I)/JJ1)
1006 ELSEIF(NELT /= 0) THEN
1010 DO J=KNOD2EL1D(IRECT(1,I))+1,KNOD2EL1D(IRECT(1,I)+1)
1015 AREA(I) = AREA(I)+DX
1016 IELEC(I) = IXT(1,IE)
1018 DO J=KNOD2EL1D(IRECT(2,I))+1,KNOD2EL1D(IRECT(2,I)+1)
1022 DX = SQRT(GEO(1,MG))
1023 AREA(I) = AREA(I)+DX
1025 AREA(I) = SQRT(AREA(I)/JJ1)
1035 1300 FORMAT(2X,'computed gap =
',1PG20.13)
1036 2001 FORMAT(2X,'maximum distance
for radiation computation =
',1PG20.13)
subroutine i11sti3(x, irect, stf, ixs, pm, geo, nrt, ixc, nintr, slsfac, nty, gapmax, noint, gap_sm, ms, ixtg, ixt, ixp, ixr, igap, gapmin, gap0, gapinf, ipartc, iparttg, thk, thk_part, percent_size, gap_l, nod2el1d, knod2el1d, itab, ixs10, id, titr, kxx, ixx, igeo, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, lelx, fillsol, intth, drad, area, ielec, pm_stack, iworksh, it19, bgapsmx, intfric, iparts, tagprt_fric, ipartfric, intbuf_fric_tab, ipartt, ipartp, ipartx, ipartr, irem_gap)