45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com01_c.inc"
53#include "com04_c.inc"
54#include "param_c.inc"
55
56
57
58 INTEGER NINT, NEL, IS, NELTG,NTY
59 INTEGER IRECT(4,*), IXC(NIXC,*), IXTG(NIXTG,*),
60 . KNOD2ELC(*) ,KNOD2ELTG(*) ,NOD2ELC(*) ,NOD2ELTG(*),
61 . IGEO(NPROPGI,*),IWORKSH(3,*)
62
64 . geo(npropg,*), pm(npropm,*),thk(*),pm_stack(20,*)
65
66
67
68 INTEGER N, J, II, K, IAD,IGTYP, IPGMAT,IGMAT,ISUBSTACK
69
71 . dxm, stm, dx, st
72
73 nel=0
74 neltg=0
75 dxm = zero
76 stm = zero
77 ipgmat = 700
78 IF(irect(3,is)==irect(4,is).AND.numeltg/=0)THEN
79 IF(irect(1,is)>numnod) RETURN
80 DO 230 iad=knod2eltg(irect(1,is))+1,knod2eltg(irect(1,is)+1)
81 n = nod2eltg(iad)
82 DO 220 j=1,3
83 ii=irect(j,is)
84 DO 210 k=1,3
85 IF(ixtg(k+1,n)==ii) GOTO 220
86 210 CONTINUE
87 GOTO 230
88 220 CONTINUE
89 igtyp = igeo(11,ixtg(5,n))
90 IF ( thk(numelc+n) /= zero .AND. iintthick == 0 .AND.
91 . (nty == 7 .OR. nty == 20.OR. nty == 22)) THEN
92 dx=thk(numelc+n)
93 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp ==52) THEN
94 dx=thk(numelc+n)
95 ELSE
96 dx = geo(1,ixtg(5,n)
97 ENDIF
98 igmat = igeo(98,ixtg(5,n))
99 IF (ixtg(1,n)>0) THEN
100 IF(igtyp == 11 .AND. igmat > 0) THEN
101 st = geo(ipgmat + 2 ,ixtg(5,n))
102 ELSEIF(igtyp ==52 .OR.
103 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))THEN
104 isubstack = iworksh(3,numelc + n)
105 st = pm_stack(2 ,isubstack)
106 ELSE
107 st = pm(20,ixtg(1,n))
108 ENDIF
109 ELSE
110 st = 0.
111 ENDIF
112 IF (dx>dxm) THEN
113 dxm = dx
114 neltg = n
115 stm = st
116 ELSEIF(dx==dxm) THEN
117 IF ((st>=stm).OR.(stm==0.)) THEN
118 neltg = n
119 stm = st
120 ENDIF
121 ENDIF
122 230 CONTINUE
123 ENDIF
124
125 IF(numelc/=0) THEN
126 DO 430 iad=knod2elc(irect(1,is))+1,knod2elc(irect(1,is)+1)
127 n = nod2elc(iad)
128 DO 420 j=1,4
129 ii=irect(j,is)
130 DO 410 k=1,4
131 IF(ixc(k+1,n)==ii) GOTO 420
132 410 CONTINUE
133 GOTO 430
134 420 CONTINUE
135 igtyp = igeo(11,ixc(6,n))
136 IF ( thk(n) /= zero .AND. iintthick == 0 .AND.
137 . (nty == 7 .OR. nty == 20.OR. nty == 22)) THEN
138 dx=thk(n)
139 ELSEIF(igtyp == 17 .OR. igtyp ==51 .OR. igtyp ==52) THEN
140 dx=thk(n)
141 ELSE
142 dx = geo(1,ixc(6,n))
143 ENDIF
144 IF (ixc(1,n)>0) THEN
145 st = pm(20,ixc(1,n))
146 ELSE
147 st = zero
148 ENDIF
149 IF (dx>dxm) THEN
150 dxm = dx
151 nel = n
152 stm = st
153 ELSEIF(dx==dxm) THEN
154 IF ((st>stm).OR.(stm==zero)) THEN
155 nel = n
156 stm = st
157 ENDIF
158 ENDIF
159 430 CONTINUE
160 ENDIF
161 RETURN