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