OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rcum33p.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "parit_c.inc"
#include "vectorize.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rcum33p (jft, jlt, xl, fsky, fskyv, forx, fory, forz, xmom, ymom, zmom, sti, stir, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, iadr, nuvar, uvar, nft)

Function/Subroutine Documentation

◆ rcum33p()

subroutine rcum33p ( integer jft,
integer jlt,
double precision, dimension(mvsiz,3) xl,
fsky,
fskyv,
forx,
fory,
forz,
xmom,
ymom,
zmom,
sti,
stir,
fx1,
fx2,
fy1,
fy2,
fz1,
fz2,
mx1,
mx2,
my1,
my2,
mz1,
mz2,
integer, dimension(3,*) iadr,
integer nuvar,
uvar,
integer, intent(in) nft )

Definition at line 28 of file rcum33p.F.

37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "parit_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER, INTENT(IN) :: NFT
53 INTEGER JFT,JLT,IADR(3,*),NUVAR
54 my_real forx(*), fory(*), forz(*), xmom(*), ymom(*), zmom(*),
55 . sti(3,*),stir(3,*),fsky(8,lsky),fskyv(lsky,8),
56 . fx1(*),fx2(*),fy1(*),fy2(*),fz1(*),fz2(*),
57 . mx1(*),mx2(*),my1(*),my2(*),mz1(*),mz2(*),uvar(nuvar,*)
58 DOUBLE PRECISION XL(MVSIZ,3)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I, II, N,J
63 my_real f11(mvsiz), f21(mvsiz), f31(mvsiz),
64 . m11(mvsiz), m21(mvsiz), m31(mvsiz),
65 . m12(mvsiz), m22(mvsiz), m32(mvsiz),
66 . xmom1, xmom2, ymom1, ymom2, zmom1, zmom2, m1,m2,m3,
67 . ex(9), xx
68C=======================================================================
69C-------------------------
70C FORCES
71C-------------------------
72C
73 DO i=jft,jlt
74 DO j=1,9
75 ex(j) = uvar(21+j,i)
76 END DO
77 f11(i)=ex(1)*forx(i)+ex(4)*fory(i)+ex(7)*forz(i)
78 f21(i)=ex(2)*forx(i)+ex(5)*fory(i)+ex(8)*forz(i)
79 f31(i)=ex(3)*forx(i)+ex(6)*fory(i)+ex(9)*forz(i)
80 ENDDO
81C
82C---- Assembly
83C
84 IF(ivector==1) THEN
85#include "vectorize.inc"
86 DO i=jft,jlt
87 ii = i+nft
88 n = iadr(1,ii)
89 fskyv(n,1)=f11(i)
90 fskyv(n,2)=f21(i)
91 fskyv(n,3)=f31(i)
92 fx1(i) = -f11(i)
93 fy1(i) = -f21(i)
94 fz1(i) = -f31(i)
95 fskyv(n,7)=sti(1,i)*two
96 n = iadr(2,ii)
97 fskyv(n,1)=-f11(i)
98 fskyv(n,2)=-f21(i)
99 fskyv(n,3)=-f31(i)
100 fx2(i) = f11(i)
101 fy2(i) = f21(i)
102 fz2(i) = f31(i)
103 fskyv(n,7)=sti(2,i)*two
104 ENDDO
105 ELSE
106 DO i=jft,jlt
107 ii = i+nft
108 n = iadr(1,ii)
109 fsky(1,n)=f11(i)
110 fsky(2,n)=f21(i)
111 fsky(3,n)=f31(i)
112 fx1(i) = -f11(i)
113 fy1(i) = -f21(i)
114 fz1(i) = -f31(i)
115 fsky(7,n)=sti(1,i)*two
116 n = iadr(2,ii)
117 fsky(1,n)=-f11(i)
118 fsky(2,n)=-f21(i)
119 fsky(3,n)=-f31(i)
120 fx2(i) = f11(i)
121 fy2(i) = f21(i)
122 fz2(i) = f31(i)
123 fsky(7,n)=sti(2,i)*two
124 ENDDO
125 ENDIF
126C
127C-------------------------
128C momentum
129C-------------------------
130C
131 DO i=jft,jlt
132 DO j=1,9
133 ex(j) = uvar(21+j,i)
134 END DO
135C
136 m1 = half*(xl(i,2)*forz(i)-xl(i,3)*fory(i))
137 m2 = half*(xl(i,3)*forx(i)-xl(i,1)*forz(i))
138 m3 = half*(xl(i,1)*fory(i)-xl(i,2)*forx(i))
139C
140 xmom1 = xmom(i) + m1
141 ymom1 = ymom(i) + m2
142 zmom1 = zmom(i) + m3
143 m11(i)=ex(1)*xmom1+ex(4)*ymom1+ex(7)*zmom1
144 m21(i)=ex(2)*xmom1+ex(5)*ymom1+ex(8)*zmom1
145 m31(i)=ex(3)*xmom1+ex(6)*ymom1+ex(9)*zmom1
146C
147 xmom2 = xmom(i) - m1
148 ymom2 = ymom(i) - m2
149 zmom2 = zmom(i) - m3
150 m12(i)=ex(1)*xmom2+ex(4)*ymom2+ex(7)*zmom2
151 m22(i)=ex(2)*xmom2+ex(5)*ymom2+ex(8)*zmom2
152 m32(i)=ex(3)*xmom2+ex(6)*ymom2+ex(9)*zmom2
153C
154 xx = xl(i,1)*xl(i,1) + xl(i,2)*xl(i,2) + xl(i,3)*xl(i,3)
155 stir(1,i) = stir(1,i) + sti(2,i)*xx
156 stir(2,i) = stir(2,i) + sti(1,i)*xx
157 ENDDO
158C
159C---- Assemble
160C
161 IF(ivector==1) THEN
162#include "vectorize.inc"
163 DO i=jft,jlt
164 ii = i+nft
165 n = iadr(1,ii)
166 fskyv(n,4)=m11(i)
167 fskyv(n,5)=m21(i)
168 fskyv(n,6)=m31(i)
169 mx1(i) = -m11(i)
170 my1(i) = -m21(i)
171 mz1(i) = -m31(i)
172 fskyv(n,8)=stir(1,i)
173 n = iadr(2,ii)
174 fskyv(n,4)=-m12(i)
175 fskyv(n,5)=-m22(i)
176 fskyv(n,6)=-m32(i)
177 mx2(i) = m12(i)
178 my2(i) = m22(i)
179 mz2(i) = m32(i)
180 fskyv(n,8)=stir(2,i)
181 ENDDO
182 ELSE
183 DO i=jft,jlt
184 ii = i+nft
185 n = iadr(1,ii)
186 fsky(4,n)=m11(i)
187 fsky(5,n)=m21(i)
188 fsky(6,n)=m31(i)
189 mx1(i) = -m11(i)
190 my1(i) = -m21(i)
191 mz1(i) = -m31(i)
192 fsky(8,n)=stir(1,i)
193 n = iadr(2,ii)
194 fsky(4,n)=-m12(i)
195 fsky(5,n)=-m22(i)
196 fsky(6,n)=-m32(i)
197 mx2(i) = m12(i)
198 my2(i) = m22(i)
199 mz2(i) = m32(i)
200 fsky(8,n)=stir(2,i)
201 ENDDO
202 ENDIF
203C-----------------------------------------------
204 RETURN
#define my_real
Definition cppsort.cpp:32