OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dmasanif.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "task_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine dmasanif (elbuf_tab, x, d, geo, iparg, ixt, ixp, ixr, mas, pm, el2fa, nbf)

Function/Subroutine Documentation

◆ dmasanif()

subroutine dmasanif ( type (elbuf_struct_), dimension(ngroup), target elbuf_tab,
x,
d,
geo,
integer, dimension(nparg,*) iparg,
integer, dimension(nixt,*) ixt,
integer, dimension(nixp,*) ixp,
integer, dimension(nixr,*) ixr,
mas,
pm,
integer, dimension(*) el2fa,
integer nbf )

Definition at line 31 of file dmasanif.F.

34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE elbufdef_mod
38 use element_mod , only : nixt,nixr,nixp
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com01_c.inc"
47#include "com04_c.inc"
48#include "param_c.inc"
49#include "task_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 my_real :: mas(*) ,pm(npropm,*),geo(npropg,*),x(3,*), d(3,*)
54 INTEGER IPARG(NPARG,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),EL2FA(*),NBF
55C
56 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
61 . off, p, vonm2, vonm, s1, s2, s12, s3, VALUE,thk0,a0,al0,
62 . rho0,xx1,xx2,xx3,yy1,yy2,yy3,zz1,zz2,zz3
63 INTEGER I, NG, NEL, NFT, IAD, ITY, LFT,
64 . IADD, N, J, LLT, MLW, NB1, NB2, NB3, NB4, NB5,NB6,
65 . NB7, NB8, NB9, NB10, NB11, NB12, NB13, NB14, NB15, NB16,
66 . ISTRAIN,NN, K1, K2,JTURB,MT,JALE, IMID, IALEL,IPID,
67 . N1,N2,N3,N4,
68 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,
69 . OFFSET,NEL_OLD,ITY_OLD,NFT_FA,N_FA,
70 . NUVAR
71
72C
73 TYPE(G_BUFEL_) ,POINTER :: GBUF
74C-----------------------------------------------
75 nn1 = 1
76 nn2 = 1
77 nn3 = 1
78 nn4 = nn3
79 nn5 = nn4
80 nn6 = nn5
81 nn7 = nn6 + numelt
82 nn8 = nn7 + numelp
83 nn9 = nn8 + numelr
84 nn10= nn9
85C-----------------------------------------------
86 nel_old = 0
87 ity_old = 0
88 DO ng=1,ngroup
89 mlw =iparg(1,ng)
90 nel =iparg(2,ng)
91 ity =iparg(5,ng)
92 gbuf => elbuf_tab(ng)%GBUF
93 IF (ispmd == 0) THEN
94 IF (ity /= ity_old) THEN
95 nel_old = 0
96 ity_old= ity
97 ENDIF
98 nft_fa = nel_old
99 nel_old = nel_old + nel
100 ENDIF
101 nft =iparg(3,ng)
102 iad =iparg(4,ng)
103 lft=1
104 llt=nel
105 IF (ispmd == 0) THEN
106 nft_fa = nel_old - nel
107 ELSE
108 nft_fa = nft
109 ENDIF
110C-----------------------------------------------
111C TRUSS
112C-----------------------------------------------
113 IF (ity == 4) THEN
114 DO i=lft,llt
115 n = i + nft
116 n_fa = i + nft_fa
117 rho0 = pm(1,ixt(1,n))
118 a0 = geo(1,ixt(4,n))
119 n1 = ixt(2,n)
120 n2 = ixt(3,n)
121 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
122 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
123 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
124 al0 = sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
125 mas(el2fa(nn6+n_fa)) = rho0*al0*a0
126 ENDDO
127C-----------------------------------------------
128C POUTRES
129C-----------------------------------------------
130 ELSEIF (ity == 5) THEN
131 DO i=lft,llt
132 n = i + nft
133 n_fa = i + nft_fa
134 rho0 = pm(1,ixp(1,n))
135 a0 = geo(1,ixp(5,n))
136 n1 = ixp(2,n)
137 n2 = ixp(3,n)
138 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
139 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
140 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
141 al0 = sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
142 mas(el2fa(nn7+n_fa)) = rho0*al0*a0
143 ENDDO
144C-----------------------------------------------
145C RESSORTS
146C-----------------------------------------------
147 ELSEIF (ity == 6) THEN
148 IF(mlw==3)THEN
149 DO i=lft,llt
150 n = i + nft
151 n_fa = i + nft_fa
152 mas(el2fa(nn8+n_fa)) = half*geo(1,ixr(1,n))
153 mas(el2fa(nn8+n_fa)+1) = half*geo(1,ixr(1,n))
154 ENDDO
155 ELSEIF (mlw == 5) THEN
156c NB1 =IAD - 1
157c NB2 =NB1 + NEL
158c NUVAR = NINT(GEO(25,IXR(1,1+NFT)))
159c NB3 =NB2 + 3*NEL
160c NB4 =NB3 + NEL
161c NB5 =NB4 + 3*NEL
162c NB6 =NB5
163c NB7 =NB6
164c NB8 =NB7
165c NB9 =NB8 + 3*NEL
166c NB10=NB9 + 3*NEL
167c NB11=NB10
168c NB12=NB11
169c NB13=NB12
170c NB14=NB13
171c NB15 = NB14 + 3*NEL
172c NB16 = NB15 + NUVAR*NEL
173 DO i=lft,llt
174 n = i + nft
175 n_fa = i + nft_fa
176 mas(el2fa(nn8+n_fa)) = gbuf%MASS(i)
177cc MAS(EL2FA(NN8+N_FA)) = BUFEL(NB16+I)
178 ENDDO
179 ELSE
180 DO i=lft,llt
181 n = i + nft
182 n_fa = i + nft_fa
183 mas(el2fa(nn8+n_fa)) = geo(1,ixr(1,n))
184 ENDDO
185 ENDIF ! IF(MLW)
186 ENDIF ! IF (ITY)
187C-----------------------------------------------
188C end of loop over offsets
189C-----------------------------------------------
190 ENDDO
191C-----------------------------------------------
192 RETURN
#define my_real
Definition cppsort.cpp:32