OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6mass3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "vect01_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s6mass3 (rho, ms, partsav, x, v, ipart, mss, rhocp, mcp, mcps, mssa, fill, volu, nc1, nc2, nc3, nc4, nc5, nc6, imas_ds)

Function/Subroutine Documentation

◆ s6mass3()

subroutine s6mass3 ( rho,
ms,
partsav,
x,
v,
integer, dimension(*) ipart,
mss,
rhocp,
mcp,
mcps,
mssa,
fill,
volu,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer, dimension(*) nc3,
integer, dimension(*) nc4,
integer, dimension(*) nc5,
integer, dimension(*) nc6,
integer, intent(in) imas_ds )

Definition at line 31 of file s6mass3.F.

34C
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT(IN) :: IMAS_DS
47 INTEGER IPART(*),
48 . NC1(*), NC2(*), NC3(*), NC4(*), NC5(*), NC6(*)
50 . rho(*), ms(*),x(3,*),v(3,*),partsav(20,*),
51 . rhocp(*), mcp(*), mcps(8,*), mssa(*), fill(*), volu(*)
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "com01_c.inc"
56#include "vect01_c.inc"
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I, IP, I1, I2, I3, I4, I5, I6
62 . xx,yy,zz,xy,yz,zx,mass(mvsiz),mss(8,*), massp,ptg(mvsiz,3)
63C-----------------------------------------------------------------------
64 CALL s6fraca(x,nc1, nc2, nc3, nc4, nc5, nc6 ,ptg ,llt ,imas_ds)
65 DO i=lft,llt
66 mass(i)=fill(i)*rho(i)*volu(i)*one_over_6
67 i1 = nc1(i)
68 i2 = nc2(i)
69 i3 = nc3(i)
70 i4 = nc4(i)
71 i5 = nc5(i)
72 i6 = nc6(i)
73 mss(1,i)=mass(i)*ptg(i,1)
74 mss(2,i)=mass(i)*ptg(i,2)
75 mss(3,i)=mass(i)*ptg(i,3)
76 mss(4,i)=zero
77 mss(5,i)=mass(i)*ptg(i,1)
78 mss(6,i)=mass(i)*ptg(i,2)
79 mss(7,i)=mass(i)*ptg(i,3)
80 mss(8,i)=zero
81C
82 ip=ipart(i)
83 partsav(1,ip)=partsav(1,ip) + six*mass(i)
84 partsav(2,ip)=partsav(2,ip) + mass(i)*
85 . (x(1,i1)+x(1,i2)+x(1,i3)+x(1,i4)
86 . +x(1,i5)+x(1,i6))
87 partsav(3,ip)=partsav(3,ip) + mass(i)*
88 . (x(2,i1)+x(2,i2)+x(2,i3)+x(2,i4)
89 . +x(2,i5)+x(2,i6))
90 partsav(4,ip)=partsav(4,ip) + mass(i)*
91 . (x(3,i1)+x(3,i2)+x(3,i3)+x(3,i4)
92 . +x(3,i5)+x(3,i6))
93 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2)
94 . +x(1,i3)*x(1,i3)+x(1,i4)*x(1,i4)
95 . +x(1,i5)*x(1,i5)+x(1,i6)*x(1,i6)
96 . )
97 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2)
98 . +x(1,i3)*x(2,i3)+x(1,i4)*x(2,i4)
99 . +x(1,i5)*x(2,i5)+x(1,i6)*x(2,i6)
100 . )
101 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2)
102 . +x(2,i3)*x(2,i3)+x(2,i4)*x(2,i4)
103 . +x(2,i5)*x(2,i5)+x(2,i6)*x(2,i6)
104 . )
105 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2)
106 . +x(2,i3)*x(3,i3)+x(2,i4)*x(3,i4)
107 . +x(2,i5)*x(3,i5)+x(2,i6)*x(3,i6)
108 . )
109 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2)
110 . +x(3,i3)*x(3,i3)+x(3,i4)*x(3,i4)
111 . +x(3,i5)*x(3,i5)+x(3,i6)*x(3,i6)
112 . )
113 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2)
114 . +x(3,i3)*x(1,i3)+x(3,i4)*x(1,i4)
115 . +x(3,i5)*x(1,i5)+x(3,i6)*x(1,i6)
116 . )
117 partsav(5,ip) =partsav(5,ip) + mass(i) * (yy+zz)
118 partsav(6,ip) =partsav(6,ip) + mass(i) * (zz+xx)
119 partsav(7,ip) =partsav(7,ip) + mass(i) * (xx+yy)
120 partsav(8,ip) =partsav(8,ip) - mass(i) * xy
121 partsav(9,ip) =partsav(9,ip) - mass(i) * yz
122 partsav(10,ip)=partsav(10,ip) - mass(i) * zx
123C
124 partsav(11,ip)=partsav(11,ip) + mass(i)*
125 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4)
126 . +v(1,i5)+v(1,i6))
127 partsav(12,ip)=partsav(12,ip) + mass(i)*
128 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4)
129 . +v(2,i5)+v(2,i6))
130 partsav(13,ip)=partsav(13,ip) + mass(i)*
131 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4)
132 . +v(3,i5)+v(3,i6))
133 partsav(14,ip)=partsav(14,ip) + half * mass(i) *
134 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
135 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
136 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
137 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4)
138 . +v(1,i5)*v(1,i5)+v(2,i5)*v(2,i5)+v(3,i5)*v(3,i5)
139 . +v(1,i6)*v(1,i6)+v(2,i6)*v(2,i6)+v(3,i6)*v(3,i6)
140 . )
141 ENDDO
142C
143 IF(irest_mselt /= 0)THEN
144 DO i=lft,llt
145 mssa(i)=mass(i)
146 ENDDO
147 ENDIF
148C
149C --- for FEM solid heat transfer
150C
151 IF(jthe < 0 ) THEN
152 DO i=lft,llt
153 massp=fill(i)*rhocp(i)*volu(i)*one_over_6
154 i1 = nc1(i)
155 i2 = nc2(i)
156 i3 = nc3(i)
157 i4 = nc4(i)
158 i5 = nc5(i)
159 i6 = nc6(i)
160 mcps(1,i)=massp*ptg(i,1)
161 mcps(2,i)=massp*ptg(i,2)
162 mcps(3,i)=massp*ptg(i,3)
163 mcps(4,i)=zero
164 mcps(5,i)=massp*ptg(i,1)
165 mcps(6,i)=massp*ptg(i,2)
166 mcps(7,i)=massp*ptg(i,3)
167 mcps(8,i)=zero
168 ENDDO
169 ENDIF
170C
171 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine s6fraca(x, ix1, ix2, ix3, ix4, ix5, ix6, ptg, nel, imas_ds)
Definition s6fraca3.F:29