OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ind_tshedg.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| ind_tshedg ../engine/source/elements/thickshell/solidec/ind_tshedg.F
25!||--- called by ------------------------------------------------------
26!|| resol_init ../engine/source/engine/resol_init.F
27!||--- uses -----------------------------------------------------
28!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
29!||====================================================================
30 SUBROUTINE ind_tshedg(ELBUF_STR,IENUNL,IXS ,IPARG )
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
286 END
subroutine ind_tshedg(elbuf_str, ienunl, ixs, iparg)
Definition ind_tshedg.F:31