OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dmasanif.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!|| dmasanif ../starter/source/output/anim/dmasanif.F
25!||--- called by ------------------------------------------------------
26!|| genani1 ../starter/source/output/anim/genani1.F
27!||--- uses -----------------------------------------------------
28!||====================================================================
29 SUBROUTINE dmasanif(X ,D ,ELBUF_TAB,GEO ,IPARG,
30 . IXT ,IXP ,IXR ,MAS ,PM ,
31 . EL2FA ,NBF )
32C-----------------------------------------------
33C M o d u l e s
34C-----------------------------------------------
35 USE elbufdef_mod
36 use element_mod , only : nixt,nixp,nixr
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com01_c.inc"
45#include "com04_c.inc"
46#include "param_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50C REAL
51 my_real
52 . mas(*) ,pm(npropm,*),geo(npropg,*),x(3,*),
53 . d(3,*)
54 INTEGER IPARG(NPARG,*),
55 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),EL2FA(*),NBF
56C
57 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61C REAL
62 my_real
63 . off, p, vonm2, vonm, s1, s2, s12, s3, VALUE,a0,al0,
64 . rho0,xx1,xx2,xx3,yy1,yy2,yy3,zz1,zz2,zz3
65 INTEGER I, NG, NEL, NFT, ITY, LFT, NPT, ISS, ISC,
66 . IADD, N, J, LLT, MLW,
67 . istrain,nn, k1, k2,jturb,mt,
68 . n1,n2,n3,n4,nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,
69 . offset,nel_old,ity_old,nft_fa,n_fa,nuvar
70 REAL R4
71C
72 TYPE(g_bufel_) ,POINTER :: GBUF
73C-----------------------------------------------
74 nn1 = 1
75 nn2 = 1
76 nn3 = 1
77 nn4 = nn3
78 nn5 = nn4
79 nn6 = nn5
80 nn7 = nn6 + numelt
81 nn8 = nn7 + numelp
82C-----------------------------------------------
83C
84 nel_old = 0
85 ity_old = 0
86 DO 490 ng=1,ngroup
87 mlw =iparg(1,ng)
88 nel =iparg(2,ng)
89 ity =iparg(5,ng)
90 nft =iparg(3,ng)
91 lft=1
92 llt=nel
93 nft_fa = nft
94C
95 gbuf => elbuf_tab(ng)%GBUF
96C-----------------------------------------------
97C TRUSS
98C-----------------------------------------------
99 IF(ity==4)THEN
100 DO i=lft,llt
101 n = i + nft
102 n_fa = i + nft_fa
103 rho0 = pm(1,ixt(1,n))
104 a0 = geo(1,ixt(4,n))
105 n1 = ixt(2,n)
106 n2 = ixt(3,n)
107 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
108 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
109 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
110 al0 = half*sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
111 mas(el2fa(nn6+n_fa)) = rho0*al0*a0
112 ENDDO
113C-----------------------------------------------
114C POUTRES
115C-----------------------------------------------
116 ELSEIF(ity==5)THEN
117 DO i=lft,llt
118 n = i + nft
119 n_fa = i + nft_fa
120 rho0 = pm(1,ixp(1,n))
121 a0 = geo(1,ixp(5,n))
122 n1 = ixp(2,n)
123 n2 = ixp(3,n)
124 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
125 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
126 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
127 al0 = half*sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
128 mas(el2fa(nn7+n_fa)) = rho0*al0*a0
129 ENDDO
130C-----------------------------------------------
131C RESSORTS
132C-----------------------------------------------
133 ELSEIF(ity==6)THEN
134 IF(mlw==3)THEN
135 DO i=lft,llt
136 n = i + nft
137 n_fa = i + nft_fa
138 mas(el2fa(nn8+n_fa)) = half*geo(1,ixr(1,n))
139 mas(el2fa(nn8+n_fa)+1) = half*geo(1,ixr(1,n))
140 ENDDO
141 ELSEIF(mlw==5) THEN
142cc NB1 =IAD - 1
143cc NB2 =NB1 + NEL
144 nuvar = nint(geo(25,ixr(1,1+nft)))
145cc NB3 =NB2 + 3*NEL
146cc NB4 =NB3 + NEL
147cc NB5 =NB4 + 3*NEL
148cc NB6 =NB5
149cc NB7 =NB6
150cc NB8 =NB7
151cc NB9 =NB8 + 3*NEL
152cc NB10=NB9 + 3*NEL
153cc NB11=NB10
154cc NB12=NB11
155cc NB13=NB12
156cc NB14=NB13
157cc NB15 = NB14 + 3*NEL
158cc NB16 = NB15 + NUVAR*NEL
159 DO i=lft,llt
160 n = i + nft
161 n_fa = i + nft_fa
162 mas(el2fa(nn8+n_fa)) = gbuf%MASS(i)
163cc MAS(EL2FA(NN8+N_FA)) = BUFEL(NB16+I)
164 ENDDO
165 ELSE
166 DO i=lft,llt
167 n = i + nft
168 n_fa = i + nft_fa
169 mas(el2fa(nn8+n_fa)) = geo(1,ixr(1,n))
170 ENDDO
171 ENDIF
172 ELSE
173 ENDIF
174C-----------------------------------------------
175C END OF LOOP ON OFFSETS
176C-----------------------------------------------
177 490 CONTINUE
178C-----------------------------------------------
179C
180 RETURN
181 END
#define my_real
Definition cppsort.cpp:32
subroutine dmasanif(x, d, elbuf_tab, geo, iparg, ixt, ixp, ixr, mas, pm, el2fa, nbf)
Definition dmasanif.F:32