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

Go to the source code of this file.

Functions/Subroutines

subroutine r2cum3p (forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nel, nft)

Function/Subroutine Documentation

◆ r2cum3p()

subroutine r2cum3p ( forx,
fory,
forz,
xmom,
ymom,
zmom,
sti,
stir,
fsky,
fskyv,
integer, dimension(3,*) iadr,
fx1,
fx2,
fy1,
fy2,
fz1,
fz2,
mx1,
mx2,
my1,
my2,
mz1,
mz2,
geo,
x1,
y1,
z1,
x2,
y2,
z2,
integer, dimension(*) iequil,
exx,
eyx,
ezx,
exy,
eyy,
ezy,
exz,
eyz,
ezz,
integer, intent(in) nel,
integer, intent(in) nft )

Definition at line 29 of file r2cum3p.F.

41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45#include "comlock.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "parit_c.inc"
54#include "param_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER, INTENT(IN) :: NEL
59 INTEGER, INTENT(IN) :: NFT
60C REAL
62 . forx(*), fory(*), forz(*), xmom(*), ymom(*),
63 . zmom(*),sti(3,*),stir(3,*),fskyv(lsky,8), fsky(8,lsky),
64 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
65 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
66 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
67 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),
68 . geo(npropg,*),x1(*),x2(*),y1(*),y2(*),
69 . z1(*),z2(*),
70 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz), exy(mvsiz),
71 . eyy(mvsiz), ezy(mvsiz), exz(mvsiz), eyz(mvsiz), ezz(mvsiz)
72 INTEGER IADR(3,*),IEQUIL(*)
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I, II, N, J
77C REAL
79 . mmx, mmy, mmz, xx
80C-----------------------------------------------
81C-------------------------
82C FORCES
83C-------------------------
84 DO i=1,nel
85 fx2(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
86 fy2(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
87 fz2(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
88 fx1(i) = -fx2(i)
89 fy1(i) = -fy2(i)
90 fz1(i) = -fz2(i)
91 ENDDO
92C-------------------------
93C ASSEMBLE
94C-------------------------
95 IF (ivector == 1) THEN
96#include "vectorize.inc"
97 DO i=1,nel
98 ii = i+nft
99 n = iadr(1,ii)
100 fskyv(n,1)=-fx1(i)
101 fskyv(n,2)=-fy1(i)
102 fskyv(n,3)=-fz1(i)
103 fskyv(n,7)=sti(1,i)
104 n = iadr(2,ii)
105 fskyv(n,1)=-fx2(i)
106 fskyv(n,2)=-fy2(i)
107 fskyv(n,3)=-fz2(i)
108 fskyv(n,7)=sti(2,i)
109 ENDDO
110 ELSE
111 DO i=1,nel
112 ii = i+nft
113 n = iadr(1,ii)
114 fsky(1,n)=-fx1(i)
115 fsky(2,n)=-fy1(i)
116 fsky(3,n)=-fz1(i)
117 fsky(7,n)=sti(1,i)
118 n = iadr(2,ii)
119 fsky(1,n)=-fx2(i)
120 fsky(2,n)=-fy2(i)
121 fsky(3,n)=-fz2(i)
122 fsky(7,n)=sti(2,i)
123 ENDDO
124 ENDIF
125C-------------------------
126C MOMENTS
127C-------------------------
128 DO i=1,nel
129 mx2(i)=exx(i)*xmom(i)+exy(i)*ymom(i)+exz(i)*zmom(i)
130 my2(i)=eyx(i)*xmom(i)+eyy(i)*ymom(i)+eyz(i)*zmom(i)
131 mz2(i)=ezx(i)*xmom(i)+ezy(i)*ymom(i)+ezz(i)*zmom(i)
132 mx1(i) = -mx2(i)
133 my1(i) = -my2(i)
134 mz1(i) = -mz2(i)
135 ENDDO
136C
137 DO i=1,nel
138 IF (iequil(i) == 1) THEN
139 mmx = half*((y2(i)-y1(i))*fz2(i) - (z2(i)-z1(i))*fy2(i))
140 mmy = half*((z2(i)-z1(i))*fx2(i) - (x2(i)-x1(i))*fz2(i))
141 mmz = half*((x2(i)-x1(i))*fy2(i) - (y2(i)-y1(i))*fx2(i))
142 mx1(i) = mx1(i) - mmx
143 my1(i) = my1(i) - mmy
144 mz1(i) = mz1(i) - mmz
145 mx2(i) = mx2(i) - mmx
146 my2(i) = my2(i) - mmy
147 mz2(i) = mz2(i) - mmz
148 xx = (x2(i)-x1(i))*(x2(i)-x1(i))
149 . + (y2(i)-y1(i))*(y2(i)-y1(i))
150 . + (z2(i)-z1(i))*(z2(i)-z1(i))
151 stir(1,i) = stir(1,i) + sti(2,i)*xx
152 stir(2,i) = stir(2,i) + sti(1,i)*xx
153 ENDIF
154 ENDDO
155C-------------------------
156C ASSEMBLE
157C-------------------------
158 IF (ivector == 1) THEN
159#include "vectorize.inc"
160 DO i=1,nel
161 ii = i+nft
162 n = iadr(1,ii)
163 fskyv(n,4)=-mx1(i)
164 fskyv(n,5)=-my1(i)
165 fskyv(n,6)=-mz1(i)
166 fskyv(n,8)=stir(1,i)
167 n = iadr(2,ii)
168 fskyv(n,4)=-mx2(i)
169 fskyv(n,5)=-my2(i)
170 fskyv(n,6)=-mz2(i)
171 fskyv(n,8)=stir(2,i)
172 ENDDO
173 ELSE
174 DO i=1,nel
175 ii = i+nft
176 n = iadr(1,ii)
177 fsky(4,n)=-mx1(i)
178 fsky(5,n)=-my1(i)
179 fsky(6,n)=-mz1(i)
180 fsky(8,n)=stir(1,i)
181 n = iadr(2,ii)
182 fsky(4,n)=-mx2(i)
183 fsky(5,n)=-my2(i)
184 fsky(6,n)=-mz2(i)
185 fsky(8,n)=stir(2,i)
186 ENDDO
187 ENDIF
188C---
189 RETURN
#define my_real
Definition cppsort.cpp:32