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