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