OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ind_tshedg.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine ind_tshedg (elbuf_str, ienunl, ixs, iparg)

Function/Subroutine Documentation

◆ ind_tshedg()

subroutine ind_tshedg ( type(elbuf_struct_), dimension(ngroup), target elbuf_str,
integer, dimension(2,*) ienunl,
integer, dimension(nixs,*) ixs,
integer, dimension(nparg,ngroup) iparg )

Definition at line 30 of file ind_tshedg.F.

31C=======================================================================
32 USE elbufdef_mod
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C A n a l y s e M o d u l e
39C-----------------------------------------------
40#include "mvsiz_p.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER IENUNL(2,*),IXS(NIXS,*),IPARG(NPARG,NGROUP)
45 TYPE(ELBUF_STRUCT_),DIMENSION(NGROUP), TARGET :: ELBUF_STR
46C REAL
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "param_c.inc"
51#include "com01_c.inc"
52#include "com04_c.inc"
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I,J,NG, NEL, NFT,N, ITY,JHBE,IGTYP,ICSTR,ISOLNOD
57 INTEGER ITAG(NUMNOD),N1,N2,NC(8,MVSIZ),NEDG
58 TYPE(G_BUFEL_) ,POINTER :: GBUF
59C REAL
60C------ -
61 itag(1:numnod)=0
62 nedg = 0
63 DO ng=1,ngroup
64 nel=iparg(2,ng)
65 nft=iparg(3,ng)
66 ity=iparg(5,ng)
67 icstr= iparg(17,ng)
68 jhbe = iparg(23,ng)
69 igtyp = iparg(38,ng)
70 isolnod= iparg(28,ng)
71 IF (iparg(8,ng)==1) cycle
72 IF (ity /= 1) cycle
73 IF (igtyp == 20.OR.igtyp == 21.OR.igtyp == 22)THEN
74 gbuf => elbuf_str(ng)%GBUF
75C--------only linear for the moment
76 IF(isolnod==6)THEN
77 DO i=1,nel
78 n = nft+i
79 nc(1:3,i)=ixs(2:4,n)
80 nc(4:6,i)=ixs(6:8,n)
81 ENDDO
82 DO i=1,nel
83 IF (gbuf%IDT_TSH(i)<=0) cycle
84 n1 = nc(1,i)
85 n2 = nc(4,i)
86 IF (itag(n1)==0.AND.itag(n2)==0) THEN
87 nedg = nedg + 1
88 ienunl(1,nedg) = n1
89 ienunl(2,nedg) = n2
90 itag(n1)=nedg
91 itag(n2)=nedg
92 END IF
93 n1 = nc(2,i)
94 n2 = nc(5,i)
95 IF (itag(n1)==0.AND.itag(n2)==0) THEN
96 nedg = nedg + 1
97 ienunl(1,nedg) = n1
98 ienunl(2,nedg) = n2
99 itag(n1)=nedg
100 itag(n2)=nedg
101 END IF
102 n1 = nc(3,i)
103 n2 = nc(6,i)
104 IF (itag(n1)==0.AND.itag(n2)==0) THEN
105 nedg = nedg + 1
106 ienunl(1,nedg) = n1
107 ienunl(2,nedg) = n2
108 itag(n1)=nedg
109 itag(n2)=nedg
110 END IF
111 ENDDO
112 ELSEIF(isolnod==8)THEN
113 DO i=1,nel
114 n = nft+i
115 nc(1:8,i)=ixs(2:9,n)
116 ENDDO
117 IF (jhbe==14) THEN
118 SELECT CASE (icstr)
119 CASE(100)
120 DO i=1,nel
121 IF (gbuf%IDT_TSH(i)<=0) cycle
122 n1 = nc(1,i)
123 n2 = nc(4,i)
124 IF (itag(n1)==0.AND.itag(n2)==0) THEN
125 nedg = nedg + 1
126 ienunl(1,nedg) = n1
127 ienunl(2,nedg) = n2
128 itag(n1)=nedg
129 itag(n2)=nedg
130 END IF
131 n1 = nc(2,i)
132 n2 = nc(3,i)
133 IF (itag(n1)==0.AND.itag(n2)==0) THEN
134 nedg = nedg + 1
135 ienunl(1,nedg) = n1
136 ienunl(2,nedg) = n2
137 itag(n1)=nedg
138 itag(n2)=nedg
139 END IF
140 n1 = nc(5,i)
141 n2 = nc(8,i)
142 IF (itag(n1)==0.AND.itag(n2)==0) THEN
143 nedg = nedg + 1
144 ienunl(1,nedg) = n1
145 ienunl(2,nedg) = n2
146 itag(n1)=nedg
147 itag(n2)=nedg
148 END IF
149 n1 = nc(6,i)
150 n2 = nc(7,i)
151 IF (itag(n1)==0.AND.itag(n2)==0) THEN
152 nedg = nedg + 1
153 ienunl(1,nedg) = n1
154 ienunl(2,nedg) = n2
155 itag(n1)=nedg
156 itag(n2)=nedg
157 END IF
158 ENDDO
159 CASE(10)
160 DO i=1,nel
161 IF (gbuf%IDT_TSH(i)<=0) cycle
162 n1 = nc(1,i)
163 n2 = nc(5,i)
164 IF (itag(n1)==0.AND.itag(n2)==0) THEN
165 nedg = nedg + 1
166 ienunl(1,nedg) = n1
167 ienunl(2,nedg) = n2
168 itag(n1)=nedg
169 itag(n2)=nedg
170 END IF
171 n1 = nc(2,i)
172 n2 = nc(6,i)
173 IF (itag(n1)==0.AND.itag(n2)==0) THEN
174 nedg = nedg + 1
175 ienunl(1,nedg) = n1
176 ienunl(2,nedg) = n2
177 itag(n1)=nedg
178 itag(n2)=nedg
179 END IF
180 n1 = nc(3,i)
181 n2 = nc(7,i)
182 IF (itag(n1)==0.AND.itag(n2)==0) THEN
183 nedg = nedg + 1
184 ienunl(1,nedg) = n1
185 ienunl(2,nedg) = n2
186 itag(n1)=nedg
187 itag(n2)=nedg
188 END IF
189 n1 = nc(4,i)
190 n2 = nc(8,i)
191 IF (itag(n1)==0.AND.itag(n2)==0) THEN
192 nedg = nedg + 1
193 ienunl(1,nedg) = n1
194 ienunl(2,nedg) = n2
195 itag(n1)=nedg
196 itag(n2)=nedg
197 END IF
198 ENDDO
199 CASE(1)
200 DO i=1,nel
201 IF (gbuf%IDT_TSH(i)<=0) cycle
202 n1 = nc(1,i)
203 n2 = nc(2,i)
204 IF (itag(n1)==0.AND.itag(n2)==0) THEN
205 nedg = nedg + 1
206 ienunl(1,nedg) = n1
207 ienunl(2,nedg) = n2
208 itag(n1)=nedg
209 itag(n2)=nedg
210 END IF
211 n1 = nc(4,i)
212 n2 = nc(3,i)
213 IF (itag(n1)==0.AND.itag(n2)==0) THEN
214 nedg = nedg + 1
215 ienunl(1,nedg) = n1
216 ienunl(2,nedg) = n2
217 itag(n1)=nedg
218 itag(n2)=nedg
219 END IF
220 n1 = nc(5,i)
221 n2 = nc(6,i)
222 IF (itag(n1)==0.AND.itag(n2)==0) THEN
223 nedg = nedg + 1
224 ienunl(1,nedg) = n1
225 ienunl(2,nedg) = n2
226 itag(n1)=nedg
227 itag(n2)=nedg
228 END IF
229 n1 = nc(8,i)
230 n2 = nc(7,i)
231 IF (itag(n1)==0.AND.itag(n2)==0) THEN
232 nedg = nedg + 1
233 ienunl(1,nedg) = n1
234 ienunl(2,nedg) = n2
235 itag(n1)=nedg
236 itag(n2)=nedg
237 END IF
238 ENDDO
239 END SELECT
240 ELSEIF (jhbe==15) THEN
241 DO i=1,nel
242 IF (gbuf%IDT_TSH(i)<=0) cycle
243 n1 = nc(1,i)
244 n2 = nc(5,i)
245 IF (itag(n1)==0.AND.itag(n2)==0) THEN
246 nedg = nedg + 1
247 ienunl(1,nedg) = n1
248 ienunl(2,nedg) = n2
249 itag(n1)=nedg
250 itag(n2)=nedg
251 END IF
252 n1 = nc(2,i)
253 n2 = nc(6,i)
254 IF (itag(n1)==0.AND.itag(n2)==0) THEN
255 nedg = nedg + 1
256 ienunl(1,nedg) = n1
257 ienunl(2,nedg) = n2
258 itag(n1)=nedg
259 itag(n2)=nedg
260 END IF
261 n1 = nc(3,i)
262 n2 = nc(7,i)
263 IF (itag(n1)==0.AND.itag(n2)==0) THEN
264 nedg = nedg + 1
265 ienunl(1,nedg) = n1
266 ienunl(2,nedg) = n2
267 itag(n1)=nedg
268 itag(n2)=nedg
269 END IF
270 n1 = nc(4,i)
271 n2 = nc(8,i)
272 IF (itag(n1)==0.AND.itag(n2)==0) THEN
273 nedg = nedg + 1
274 ienunl(1,nedg) = n1
275 ienunl(2,nedg) = n2
276 itag(n1)=nedg
277 itag(n2)=nedg
278 END IF
279 ENDDO
280 END IF
281 END IF
282 END IF
283 ENDDO
284C
285 RETURN