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

Go to the source code of this file.

Functions/Subroutines

subroutine rmas12 (ixr, geo, partsav, x, v, ipart, xl, msr, inr, msrt)

Function/Subroutine Documentation

◆ rmas12()

subroutine rmas12 ( integer, dimension(nixr,*) ixr,
geo,
partsav,
x,
v,
integer, dimension(*) ipart,
xl,
msr,
inr,
msrt )

Definition at line 30 of file rmas12.F.

31 use element_mod , only : nixr
32C----------------------------------------------
33C initialization of nodal masses
34C----------------------------------------------
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "com01_c.inc"
43#include "param_c.inc"
44#include "vect01_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER :: IXR(NIXR,*),IPART(*)
49 my_real :: geo(npropg,*),x(3,*),v(3,*),partsav(20,*), xl(*),msr(3,*),inr(3,*),msrt(*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER I, IP,I1,I2,I3
54 my_real :: xx,yy,zz,xy,yz,zx
55 my_real :: ems, xi,ems2, xi2
56C---------------------------------------------------------------------
57 IF(irest_mselt/=0)THEN
58 DO i=lft,llt
59 msrt(i)=geo(1,ixr(1,i+nft))*xl(i)
60 ENDDO
61 END IF
62C----------------------------------------------
63C MASSE ELEMENT /2
64C----------------------------------------------
65C----------------------------------------------
66C initialization of nodal masses
67C----------------------------------------------
68
69 DO i=lft,llt
70 i1 = ixr(2,i+nft)
71 i2 = ixr(3,i+nft)
72 i3 = ixr(4,i+nft)
73C
74 ems = half * geo(1,ixr(1,i+nft))*xl(i)
75 ems2= half * ems
76
77 xi = half * geo(9,ixr(1,i+nft))
78 xi2 = half * xi*xl(i)
79 msr(1,i) = ems2
80 msr(2,i) = ems
81 msr(3,i) = ems2
82 inr(1,i) = xi2
83 inr(2,i) = xi
84 inr(3,i) = xi2
85C
86C
87 ip=ipart(i)
88 partsav(1,ip)=partsav(1,ip) + two*ems
89 partsav(2,ip)=partsav(2,ip)
90 . + ems2*(x(1,i1)+x(1,i3)) + ems*x(1,i2)
91 partsav(3,ip)=partsav(3,ip)
92 . + ems2*(x(2,i1)+x(2,i3)) + ems*x(2,i2)
93 partsav(4,ip)=partsav(4,ip)
94 . + ems2*(x(3,i1)+x(3,i3)) + ems*x(3,i2)
95 xx = half*(x(1,i1)*x(1,i1)+x(1,i3)*x(1,i3)) + x(1,i2)*x(1,i2)
96 xy = half*(x(1,i1)*x(2,i1)+x(2,i3)*x(2,i3)) + x(1,i2)*x(2,i2)
97 yy = half*(x(2,i1)*x(2,i1)+x(3,i3)*x(3,i3)) + x(2,i2)*x(2,i2)
98 yz = half*(x(2,i1)*x(3,i1)+x(1,i3)*x(1,i3)) + x(2,i2)*x(3,i2)
99 zz = half*(x(3,i1)*x(3,i1)+x(2,i3)*x(2,i3)) + x(3,i2)*x(3,i2)
100 zx = half*(x(3,i1)*x(1,i1)+x(3,i3)*x(3,i3)) + x(3,i2)*x(1,i2)
101 partsav(5,ip) =partsav(5,ip) + two*xi + ems * (yy+zz)
102 partsav(6,ip) =partsav(6,ip) + two*xi + ems * (zz+xx)
103 partsav(7,ip) =partsav(7,ip) + two*xi + ems * (xx+yy)
104 partsav(8,ip) =partsav(8,ip) - ems * xy
105 partsav(9,ip) =partsav(9,ip) - ems * yz
106 partsav(10,ip)=partsav(10,ip) - ems * zx
107C
108 partsav(11,ip)=partsav(11,ip)
109 . + ems2*(v(1,i1)+v(1,i3)) + ems*v(1,i2)
110 partsav(12,ip)=partsav(12,ip)
111 . + ems2*(v(2,i1)+v(2,i3)) + ems*v(2,i2)
112 partsav(13,ip)=partsav(13,ip)
113 . + ems2*(v(3,i1)+v(3,i3)) + ems*v(3,i2)
114 partsav(14,ip)=partsav(14,ip) + half * ems2 *
115 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
116 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3))
117 . + half * ems *
118 . (v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
119 ENDDO
120C
121 RETURN
#define my_real
Definition cppsort.cpp:32