OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_oned_vector.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_vector ../engine/source/output/h3d/h3d_results/h3d_oned_vector.F
25!||--- called by ------------------------------------------------------
26!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
27!||--- calls -----------------------------------------------------
28!|| h3d_write_vector ../engine/source/output/h3d/h3d_results/h3d_write_vector.F
29!||--- uses -----------------------------------------------------
30!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
31!|| element_mod ../common_source/modules/elements/element_mod.F90
32!|| names_and_titles_mod ../common_source/modules/names_and_titles_mod.F
33!||====================================================================
34 SUBROUTINE h3d_oned_vector(
35 . ELBUF_TAB , IFUNC , IPARG , GEO , IXT ,
36 . IXP , IXR , PM , ANIM ,
37 . ONED_VECTOR , ID_ELEM , ITY_ELEM , INFO1 , INFO2 ,
38 . IS_WRITTEN_ONED, IPARTT , IPARTP , IPARTR, H3D_PART,
39 . KEYWORD , X , D , TORS )
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE elbufdef_mod
45 use element_mod , only : nixt,nixr,nixp
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54#include "com01_c.inc"
55#include "com04_c.inc"
56#include "param_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60C REAL
62 . pm(npropm,*), geo(npropg,*),
63 . anim(*),oned_vector(3,*),x(3,*),d(3,*),tors(15,*)
64 INTEGER IPARG(NPARG,*),
65 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IFUNC,
66 . nanim1d_l,
67 . is_written_oned(*),id_elem(*),ity_elem(*),
68 . ipartt(*) ,ipartp(*),ipartr(*),h3d_part(*)
69 INTEGER INFO1, INFO2
70C
71 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
72 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76C REAL
78 . evar(mvsiz), mass(mvsiz) ,
79 . off, p, vonm2, vonm, s1, s2, s12, s3, value(3),
80 . a1,b1,b2,b3,yeq,f1,m1,m2,m3, xm,
81 . for, area, feq, eplas, rho0, a0, xx1, yy1, zz1, al0
82 INTEGER I, NG, NEL, NFT, ITY,
83 . IADD, N, J, LLT, MLW, NB1, NB2, NB3, NB4, NB5,
84 . NB6, NB7, NB8, NB9, NB10, NB11, NB12, NB13, NB14, NB15,
85 . NB16, LLL,NUVAR,IGTYP,
86 . ISTRAIN,NN, K1, K2,JTURB,MT,JALE, IMID, IALEL,IPID,
87 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nf,
88 . offset,k,inc,kk,ihbe,isrot,ilayer,ir,is,jj(6),iok_part(mvsiz),
89 . is_written_value(mvsiz),n1, n2
90
91C
92 TYPE(G_BUFEL_) ,POINTER :: GBUF
93
94C-----------------------------------------------
95C
96 NN1 = 1
97 nn3 = 1
98 nn4 = nn3
99 nn5 = nn4
100 nn6 = nn5
101 nn7 = nn6 + numelt
102 nn8 = nn7 + numelp
103 nn9 = nn8 + numelr
104 nn10= nn9
105C
106 DO ng=1,ngroup
107 mlw =iparg(1,ng)
108 nel =iparg(2,ng)
109 ity =iparg(5,ng)
110 igtyp =iparg(38,ng)
111C---
112 gbuf => elbuf_tab(ng)%GBUF
113C---
114 nft =iparg(3,ng)
115!
116 DO i=1,6
117 jj(i) = nel*(i-1)
118 ENDDO
119
120 value(1:3) = zero
121 DO i=1,nel
122 is_written_value(i) = 0
123 ENDDO
124c
125 IF (ity == 4) offset = 0
126 IF (ity == 5) offset = numelt
127 IF (ity == 6) offset = numelt+numelp
128c
129 DO i=1,nel
130 IF (ity == 4) THEN
131 id_elem(offset+nft+i) = ixt(nixt,nft+i)
132 ity_elem(offset+nft+i) = 4
133 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
134 ELSEIF (ity == 5) THEN
135 id_elem(offset+nft+i) = ixp(nixp,nft+i)
136 ity_elem(offset+nft+i) = 5
137 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
138 ELSEIF (ity == 6) THEN
139 id_elem(offset+nft+i) = ixr(nixr,nft+i)
140 ity_elem(offset+nft+i) = 6
141 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
142 ENDIF
143 ENDDO
144
145 IF(ity==4 .OR. ity==5 .OR. ity==6)THEN
146 DO i=1,nel
147 oned_vector(1:3,offset+nft+i) = zero ! Default = zero in all cases !
148 ENDDO
149 ENDIF
150C-----------------------------------------------
151C TRUSS
152C-----------------------------------------------
153 IF(ity==4)THEN
154C--------------------------------------------------
155 IF (keyword == 'FINT') THEN
156C--------------------------------------------------
157 DO i=1,nel
158 value(1) = tors(1,offset+nft+i)
159 value(2) = tors(2,offset+nft+i)
160 value(3) = tors(3,offset+nft+i)
161 CALL h3d_write_vector(iok_part,is_written_oned,oned_vector,i,offset,nft,
162 . VALUE)
163 ENDDO
164C--------------------------------------------------
165c ELSEIF (KEYWORD == '') THEN
166C--------------------------------------------------
167c DO I=1,NEL
168c VALUE(1) =
169c VALUE(2) =
170c VALUE(3) =
171c CALL H3D_WRITE_VECTOR(IOK_PART,IS_WRITTEN_ONED,NODAL_VECTOR,I,0,0,
172c . VALUE)
173c ENDDO
174 ENDIF
175C-----------------------------------------------
176C POUTRES
177C-----------------------------------------------
178 ELSEIF(ity==5)THEN
179C--------------------------------------------------
180 IF (keyword == 'fint') THEN
181C--------------------------------------------------
182 DO I=1,NEL
183 VALUE(1) = TORS(1,OFFSET+NFT+I)
184 VALUE(2) = TORS(2,OFFSET+NFT+I)
185 VALUE(3) = TORS(3,OFFSET+NFT+I)
186 CALL H3D_WRITE_VECTOR(IOK_PART,IS_WRITTEN_ONED,ONED_VECTOR,I,OFFSET,NFT,
187 . VALUE)
188 ENDDO
189C--------------------------------------------------
190c ELSEIF (KEYWORD == '') THEN
191C--------------------------------------------------
192c DO I=1,NEL
193c VALUE(1) =
194c VALUE(2) =
195c VALUE(3) =
196c CALL H3D_WRITE_VECTOR(IOK_PART,IS_WRITTEN_ONED,NODAL_VECTOR,I,0,0,
197c . VALUE)
198c ENDDO
199 ENDIF
200C-----------------------------------------------
201C RESSORTS
202C-----------------------------------------------
203 ELSEIF(ITY==6)THEN
204C--------------------------------------------------
205 IF (KEYWORD == 'fint') THEN
206C--------------------------------------------------
207 DO I=1,NEL
208 VALUE(1) = TORS(1,OFFSET+NFT+I)
209 VALUE(2) = TORS(2,OFFSET+NFT+I)
210 VALUE(3) = TORS(3,OFFSET+NFT+I)
211 CALL H3D_WRITE_VECTOR(IOK_PART,IS_WRITTEN_ONED,ONED_VECTOR,I,OFFSET,NFT,
212 . VALUE)
213 ENDDO
214C--------------------------------------------------
215c ELSEIF (KEYWORD == '') THEN
216C--------------------------------------------------
217c DO I=1,NEL
218c VALUE(1) =
219c VALUE(2) =
220c VALUE(3) =
221c CALL H3D_WRITE_VECTOR(IOK_PART,IS_WRITTEN_ONED,NODAL_VECTOR,I,0,0,
222c . VALUE)
223c ENDDO
224 ENDIF
225 ENDIF
226 ENDDO
227
228 RETURN
229 END
#define my_real
Definition cppsort.cpp:32
subroutine h3d_oned_vector(elbuf_tab, ifunc, iparg, geo, ixt, ixp, ixr, pm, anim, oned_vector, id_elem, ity_elem, info1, info2, is_written_oned, ipartt, ipartp, ipartr, h3d_part, keyword, x, d, tors)
subroutine h3d_write_vector(iok_part, is_written, vector, i, offset, nft, value)
subroutine area(d1, x, x2, y, y2, eint, stif0)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter ncharline100