OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_oned_torsor.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!|| h3d_oned_torsor ../engine/source/output/h3d/h3d_results/h3d_oned_torsor.F
25!||--- called by ------------------------------------------------------
26!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
27!||--- calls -----------------------------------------------------
28!|| h3d_write_torsor ../engine/source/output/h3d/h3d_results/h3d_write_torsor.f
29!||--- uses -----------------------------------------------------
30!|| element_mod ../common_source/modules/elements/element_mod.F90
31!|| names_and_titles_mod ../common_source/modules/names_and_titles_mod.F
32!||====================================================================
33 SUBROUTINE h3d_oned_torsor(
34 . IPARG , IFUNC , IXT , IXP , IXR ,
35 . TORS , ONED_TORSOR , ID_ELEM , ITY_ELEM , INFO1 ,
36 . INFO2 , IS_WRITTEN_ONED, IPARTT , IPARTP , IPARTR,
37 . H3D_PART, KEYWORD )
38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
42 use element_mod , only : nixt,nixr,nixp
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "mvsiz_p.inc"
52#include "com04_c.inc"
53#include "param_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57C REAL
59 . evar(9,mvsiz),tors(15,*),oned_torsor(9,*)
60 INTEGER IPARG(NPARG,*),IFUNC,INFO1 ,INFO2 ,
61 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
62 . is_written_oned(*),id_elem(*),ity_elem(*),
63 . ipartt(*) ,ipartp(*),ipartr(*),h3d_part(*)
64 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68C REAL
70 . off, fac, a1, a2, a3, thk
71
72 INTEGER I, NG, NEL, NFT, IAD, ITY, LFT, M,
73 . iadd, n, j, llt, mlw, nb1, nb2, nb3, nb4, nb5,
74 . nb6, nb7, nb8, nb9, nb10, nb11, nb12, istrain,
75 . ipid, i1, i2, iad2, ns1, ns2 , ialel, istre,
76 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nni,n0,
77 . ihbe,buf,iok_part(mvsiz),offset
78C-----------------------------------------------
79C
80 DO ng=1,ngroup
81C IF(ANIM_K==0.AND.IPARG(8,NG)==1)GOTO 490
82 mlw =iparg(1,ng)
83 nel =iparg(2,ng)
84 nft =iparg(3,ng)
85 iad =iparg(4,ng)
86 ity =iparg(5,ng)
87 nb1 =iad - 1
88 lft=1
89 llt=nel
90
91 IF (ity == 4) offset = 0
92 IF (ity == 5) offset = numelt
93 IF (ity == 6) offset = numelt+numelp
94c
95 DO i=1,nel
96 IF (ity == 4) THEN
97 id_elem(offset+nft+i) = ixt(nixt,nft+i)
98 ity_elem(offset+nft+i) = 4
99 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
100 ELSEIF (ity == 5) THEN
101 id_elem(offset+nft+i) = ixp(nixp,nft+i)
102 ity_elem(offset+nft+i) = 5
103 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
104 ELSEIF (ity == 6) THEN
105 id_elem(offset+nft+i) = ixr(nixr,nft+i)
106 ity_elem(offset+nft+i) = 6
107 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
108 ENDIF
109 ENDDO
110
111 IF(ity==4 .OR. ity==5 .OR. ity==6)THEN
112 DO i=1,nel
113 oned_torsor(1:9,offset+nft+i) = zero ! Default = zero in all cases !
114 ENDDO
115 ENDIF
116c
117 IF(ity==4)THEN
118C-----------------------------------------------
119 IF (keyword == 'F1') THEN
120C------------------------------------------------
121 DO i=1,nel
122 m = nft+i+offset
123 evar(1,i) = tors(1,m)
124 ENDDO
125C---------------------------------------------
126 ELSEIF (keyword == 'F2') THEN
127C------------------------------------------------
128 DO i=1,nel
129 m = nft+i+offset
130 evar(1,i) = tors(2,m)
131 ENDDO
132C---------------------------------------------
133 ELSEIF (keyword == 'F3') THEN
134C------------------------------------------------
135 DO i=1,nel
136 m = nft+i+offset
137 evar(1,i) = tors(3,m)
138 ENDDO
139C---------------------------------------------
140 ELSEIF (keyword == 'M11') THEN
141C------------------------------------------------
142 DO i=1,nel
143 m = nft+i+offset
144 evar(1,i) = tors(4,m)
145 ENDDO
146C---------------------------------------------
147 ELSEIF (keyword == 'M21') THEN
148C------------------------------------------------
149 DO i=1,nel
150 m = nft+i+offset
151 evar(1,i) = tors(5,m)
152 ENDDO
153C---------------------------------------------
154 ELSEIF (keyword == 'M31') THEN
155C------------------------------------------------
156 DO i=1,nel
157 m = nft+i+offset
158 evar(1,i) = tors(6,m)
159 ENDDO
160C---------------------------------------------
161 ELSEIF (keyword == 'M12') THEN
162C------------------------------------------------
163 DO i=1,nel
164 m = nft+i+offset
165 evar(1,i) = tors(7,m)
166 ENDDO
167C---------------------------------------------
168 ELSEIF (keyword == 'M22') THEN
169C------------------------------------------------
170 DO i=1,nel
171 m = nft+i+offset
172 evar(1,i) = tors(8,m)
173 ENDDO
174C---------------------------------------------
175 ELSEIF (keyword == 'm32') THEN
176C------------------------------------------------
177 DO I=1,NEL
178 M = NFT+I+OFFSET
179 EVAR(1,I) = TORS(9,M)
180 ENDDO
181 ENDIF
182
183 CALL H3D_WRITE_TORSOR(IOK_PART,IS_WRITTEN_ONED,ONED_TORSOR,NEL,OFFSET,NFT,
184 . EVAR)
185
186 ELSEIF(ITY==5)THEN
187C-----------------------------------------------
188 IF (KEYWORD == 'f1') THEN
189C------------------------------------------------
190 DO I=1,NEL
191 M = NFT+I+OFFSET
192 EVAR(1,I) = TORS(1,M)
193 ENDDO
194C---------------------------------------------
195 ELSEIF (KEYWORD == 'f2') THEN
196C------------------------------------------------
197 DO I=1,NEL
198 M = NFT+I+OFFSET
199 EVAR(1,I) = TORS(2,M)
200 ENDDO
201C---------------------------------------------
202 ELSEIF (KEYWORD == 'f3') THEN
203C------------------------------------------------
204 DO I=1,NEL
205 M = NFT+I+OFFSET
206 EVAR(1,I) = TORS(3,M)
207 ENDDO
208C---------------------------------------------
209 ELSEIF (KEYWORD == 'm11') THEN
210C------------------------------------------------
211 DO I=1,NEL
212 M = NFT+I+OFFSET
213 EVAR(1,I) = TORS(4,M)
214 ENDDO
215C---------------------------------------------
216 ELSEIF (KEYWORD == 'm21') THEN
217C------------------------------------------------
218 DO I=1,NEL
219 M = NFT+I+OFFSET
220 EVAR(1,I) = TORS(5,M)
221 ENDDO
222C---------------------------------------------
223 ELSEIF (KEYWORD == 'm31') THEN
224C------------------------------------------------
225 DO I=1,NEL
226 M = NFT+I+OFFSET
227 EVAR(1,I) = TORS(6,M)
228 ENDDO
229C---------------------------------------------
230 ELSEIF (KEYWORD == 'm12') THEN
231C------------------------------------------------
232 DO I=1,NEL
233 M = NFT+I+OFFSET
234 EVAR(1,I) = TORS(7,M)
235 ENDDO
236C---------------------------------------------
237 ELSEIF (KEYWORD == 'm22') THEN
238C------------------------------------------------
239 DO I=1,NEL
240 M = NFT+I+OFFSET
241 EVAR(1,I) = TORS(8,M)
242 ENDDO
243C---------------------------------------------
244 ELSEIF (KEYWORD == 'm32') THEN
245C------------------------------------------------
246 DO I=1,NEL
247 M = NFT+I+OFFSET
248 EVAR(1,I) = TORS(9,M)
249 ENDDO
250 ENDIF
251
252 CALL H3D_WRITE_TORSOR(IOK_PART,IS_WRITTEN_ONED,ONED_TORSOR,NEL,OFFSET,NFT,
253 . EVAR)
254 ELSEIF(ITY==6)THEN
255C-----------------------------------------------
256 IF (KEYWORD == 'f1') THEN
257C------------------------------------------------
258 DO I=1,NEL
259 M = NFT+I+OFFSET
260 EVAR(1,I) = TORS(1,M)
261 ENDDO
262C---------------------------------------------
263 ELSEIF (KEYWORD == 'f2') THEN
264C------------------------------------------------
265 DO I=1,NEL
266 M = NFT+I+OFFSET
267 EVAR(1,I) = TORS(2,M)
268 ENDDO
269C---------------------------------------------
270 ELSEIF (KEYWORD == 'f3') THEN
271C------------------------------------------------
272 DO I=1,NEL
273 M = NFT+I+OFFSET
274 EVAR(1,I) = TORS(3,M)
275 ENDDO
276C---------------------------------------------
277 ELSEIF (KEYWORD == 'm11') THEN
278C------------------------------------------------
279 DO I=1,NEL
280 M = NFT+I+OFFSET
281 EVAR(1,I) = TORS(4,M)
282 ENDDO
283C---------------------------------------------
284 ELSEIF (KEYWORD == 'm21') THEN
285C------------------------------------------------
286 DO I=1,NEL
287 M = NFT+I+OFFSET
288 EVAR(1,I) = TORS(5,M)
289 ENDDO
290C---------------------------------------------
291 ELSEIF (KEYWORD == 'm31') THEN
292C------------------------------------------------
293 DO I=1,NEL
294 M = NFT+I+OFFSET
295 EVAR(1,I) = TORS(6,M)
296 ENDDO
297C---------------------------------------------
298 ELSEIF (KEYWORD == 'm12') THEN
299C------------------------------------------------
300 DO I=1,NEL
301 M = NFT+I+OFFSET
302 EVAR(1,I) = TORS(7,M)
303 ENDDO
304C---------------------------------------------
305 ELSEIF (KEYWORD == 'm22') THEN
306C------------------------------------------------
307 DO I=1,NEL
308 M = NFT+I+OFFSET
309 EVAR(1,I) = TORS(8,M)
310 ENDDO
311C---------------------------------------------
312 ELSEIF (KEYWORD == 'm32') THEN
313C------------------------------------------------
314 DO I=1,NEL
315 M = NFT+I+OFFSET
316 EVAR(1,I) = TORS(9,M)
317 ENDDO
318 ENDIF
319
320 CALL H3D_WRITE_TORSOR(IOK_PART,IS_WRITTEN_ONED,ONED_TORSOR,NEL,OFFSET,NFT,
321 . EVAR)
322 ENDIF
323C-----------------------------------------------
324 ENDDO
325C
326C-----------------------------------------------
327 RETURN
328 END
#define my_real
Definition cppsort.cpp:32
subroutine h3d_oned_torsor(iparg, ifunc, ixt, ixp, ixr, tors, oned_torsor, id_elem, ity_elem, info1, info2, is_written_oned, ipartt, ipartp, ipartr, h3d_part, keyword)
subroutine h3d_write_torsor(iok_part, is_written, torsor, nel, offset, nft, value)
integer, parameter ncharline100