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

Go to the source code of this file.

Functions/Subroutines

subroutine ig3dmass3 (rho, ms, partsav, x, y, z, vx, vy, vz, ipart, msig3d, volu, msnf, mssf, in, vr, ins, wma, rhocp, mcp, mcps, mssa, rhof, frac, nctrl, kxig3d, ixig3d, r, detjac, pgauss, i)

Function/Subroutine Documentation

◆ ig3dmass3()

subroutine ig3dmass3 ( rho,
ms,
partsav,
x,
y,
z,
vx,
vy,
vz,
integer, dimension(*) ipart,
msig3d,
volu,
msnf,
mssf,
in,
vr,
ins,
wma,
rhocp,
mcp,
mcps,
mssa,
rhof,
frac,
integer nctrl,
integer, dimension(nixig3d,*) kxig3d,
integer, dimension(*) ixig3d,
r,
detjac,
pgauss,
integer i )

Definition at line 29 of file ig3dmass3.F.

37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE ale_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER IPART(*),NDDIM, NCTRL, I, KXIG3D(NIXIG3D,*),IXIG3D(*)
54 . rho(*),ms(*),x(nctrl,*),
55 . y(nctrl,*),z(nctrl,*),
56 . vx(nctrl,mvsiz),vy(nctrl,mvsiz),vz(nctrl,mvsiz),
57 . partsav(20,*),volu(*),
58 . msig3d(numelig3d,*), mssf(8,*), msnf(*),
59 . in(*),vr(3,*),ins(8,*),wma(*),
60 . rhocp(*),mcp(*),mcps(8,*), mssa(*),rhof(*),
61 . frac(*),pgauss,detjac,r(*)
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "vect01_c.inc"
68#include "param_c.inc"
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER J,IP,I1,I2,I3,I4,I5,I6,I7,I8, ITNCTRL, INCTRL
73 my_real xx,yy,zz,xy,yz,zx,iner,rcp
74 my_real mass(mvsiz),massf(mvsiz)
75
76C=======================================================================
77C S o u r c e L i n e s
78C=======================================================================
79C
80 xx=zero
81 xy=zero
82 yy=zero
83 yz=zero
84 zz=zero
85 zx=zero
86C
87 DO itnctrl=1,nctrl
88 mass(i)= rho(i)*r(itnctrl)*detjac*pgauss
89 massf(i)= frac(i)*rhof(i)*r(itnctrl)*detjac*pgauss
90 msig3d(i+nft,itnctrl)=msig3d(i+nft,itnctrl) + mass(i)
91C
92 ip=ipart(i)
93 partsav(1,ip)=partsav(1,ip) + mass(i)
94c
95 partsav(2,ip)=partsav(2,ip) + mass(i)*x(itnctrl,i)
96 partsav(3,ip)=partsav(3,ip) + mass(i)*y(itnctrl,i)
97 partsav(4,ip)=partsav(4,ip) + mass(i)*z(itnctrl,i)
98c
99 xx = xx + mass(i) * x(itnctrl,i)*x(itnctrl,i)
100 xy = xy + mass(i) * x(itnctrl,i)*y(itnctrl,i)
101 yy = yy + mass(i) * y(itnctrl,i)*y(itnctrl,i)
102 yz = yz + mass(i) * y(itnctrl,i)*z(itnctrl,i)
103 zz = zz + mass(i) * z(itnctrl,i)*z(itnctrl,i)
104 zx = zx + mass(i) * z(itnctrl,i)*x(itnctrl,i)
105 ENDDO
106C
107 partsav(5,ip) =partsav(5,ip) + (yy+zz)
108 partsav(6,ip) =partsav(6,ip) + (zz+xx)
109 partsav(7,ip) =partsav(7,ip) + (xx+yy)
110 partsav(8,ip) =partsav(8,ip) - xy
111 partsav(9,ip) =partsav(9,ip) - yz
112 partsav(10,ip)=partsav(10,ip) - zx
113C
114 DO itnctrl=1,nctrl
115 partsav(11,ip)=partsav(11,ip) + mass(i)*
116 . vx(itnctrl,i)
117 partsav(12,ip)=partsav(12,ip) + mass(i)*
118 . vy(itnctrl,i)
119 partsav(13,ip)=partsav(13,ip) + mass(i)*
120 . vz(itnctrl,i)
121 partsav(14,ip)=partsav(14,ip) + half * mass(i) *
122 . (vx(itnctrl,i)*vx(itnctrl,i) +
123 . vy(itnctrl,i)*vy(itnctrl,i) +
124 . vz(itnctrl,i)*vz(itnctrl,i))
125 ENDDO
126C
127 IF(irest_mselt /= 0)THEN
128 mssa(nft+i)=mass(i)
129 ENDIF
130C
131 IF(jale == 3 .AND. jlag == 1)THEN
132 DO itnctrl=1,nctrl
133 mssf(itnctrl,i)=massf(i)
134 ENDDO
135 ELSEIF(jale+jeul>0)THEN
136 DO itnctrl=1,nctrl
137 mssf(itnctrl,i)=mass(i)
138 ENDDO
139 ENDIF
140C
141c IF(JTHE < 0 ) THEN
142c RCP=RHOCP(I)*VOLU(I)/NCTRL
143c DO ITNCTRL=1,NCTRL
144c MCPS(ITNCTRL,I) =RCP
145c ENDDO
146c ENDIF
147c IF(ISROT==1)THEN
148c IF(IRODDL==0)THEN
149C prov gw
150c STOP 1119
151c ENDIF
152c INER=(MASS(I)*VOLU(I)**TWO_THIRD)/SIX
153c DO ITNCTRL=1,NCTRL
154c INS(ITNCTRL,I)=INER
155c ENDDO
156c ENDIF
157C
158 IF(jale > 0 .AND. ale%GRID%NWALE == 4)THEN
159 DO itnctrl=1,nctrl
160 inctrl = ixig3d(kxig3d(4,i+nft)+itnctrl-1)
161 wma(inctrl)=wma(inctrl)+three_half
162 ENDDO
163 ENDIF
164C-----------
165 RETURN
#define my_real
Definition cppsort.cpp:32
type(ale_) ale
Definition ale_mod.F:249