OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r5cum3p.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| r5cum3p ../engine/source/elements/spring/r5cum3p.F
25!||--- called by ------------------------------------------------------
26!|| rforc3 ../engine/source/elements/spring/rforc3.f
27!||====================================================================
28 SUBROUTINE r5cum3p(
29 1 FORX, FORY, FORZ, XMOM,
30 2 YMOM, ZMOM, STI, STIR,
31 3 FSKY, FSKYV, IADR, FX1,
32 4 FX2, FY1, FY2, FZ1,
33 5 FZ2, MX1, MX2, MY1,
34 6 MY2, MZ1, MZ2, MOM1Y,
35 7 MOM1Z, EXX, EYX, EZX,
36 8 EXY, EYY, EZY, EXZ,
37 9 EYZ, EZZ, AL, NEL,
38 A NFT)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43#include "comlock.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "parit_c.inc"
52C-----------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER, INTENT(IN) :: NEL
56 INTEGER, INTENT(IN) :: NFT
57 INTEGER IADR(3,*)
58C REAL
59 my_real
60 . FORX(*), FORY(*), FORZ(*), XMOM(*),
61 . YMOM(*),ZMOM(*),STI(3,*),STIR(3,*),FSKYV(LSKY,8),
62 . FSKY(8,LSKY),
63 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
64 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
65 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
66 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),
67 . mom1y(mvsiz),mom1z(mvsiz),
68 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz),
69 . exy(mvsiz), eyy(mvsiz), ezy(mvsiz),
70 . exz(mvsiz), eyz(mvsiz), ezz(mvsiz),al(mvsiz)
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER I, II, N
75CC REAL
76 my_real
77 . F11(MVSIZ), F21(MVSIZ), F31(MVSIZ),
78 . M11(MVSIZ), M21(MVSIZ), M31(MVSIZ),
79 . M12(MVSIZ), M22(MVSIZ), M32(MVSIZ),
80 . YMOM1, YMOM2, ZMOM1, ZMOM2
81C-----------------------------------------------
82 DO I=1,nel
83 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
84 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
85 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
86 ENDDO
87C-------------------------
88C ASSEMBLE
89C-------------------------
90 IF (ivector == 1) THEN
91#include "vectorize.inc"
92 DO i=1,nel
93 ii = i+nft
94 n = iadr(1,ii)
95 fskyv(n,1)=f11(i)
96 fskyv(n,2)=f21(i)
97 fskyv(n,3)=f31(i)
98 fx1(i) = -f11(i)
99 fy1(i) = -f21(i)
100 fz1(i) = -f31(i)
101 fskyv(n,7)=sti(1,i)
102 n = iadr(2,ii)
103 fskyv(n,1)=-f11(i)
104 fskyv(n,2)=-f21(i)
105 fskyv(n,3)=-f31(i)
106 fx2(i) = f11(i)
107 fy2(i) = f21(i)
108 fz2(i) = f31(i)
109 fskyv(n,7)=sti(2,i)
110 ENDDO
111 ELSE
112 DO i=1,nel
113 ii = i+nft
114 n = iadr(1,ii)
115 fsky(1,n)=f11(i)
116 fsky(2,n)=f21(i)
117 fsky(3,n)=f31(i)
118 fx1(i) = -f11(i)
119 fy1(i) = -f21(i)
120 fz1(i) = -f31(i)
121 fsky(7,n)=sti(1,i)
122 n = iadr(2,ii)
123 fsky(1,n)=-f11(i)
124 fsky(2,n)=-f21(i)
125 fsky(3,n)=-f31(i)
126 fx2(i) = f11(i)
127 fy2(i) = f21(i)
128 fz2(i) = f31(i)
129 fsky(7,n)=sti(2,i)
130 ENDDO
131 ENDIF
132C-------------------------
133C MOMENTS
134C-------------------------
135 DO i=1,nel
136 ymom1 = ymom(i) - half*al(i)*forz(i)
137 zmom1 = zmom(i) + half*al(i)*fory(i)
138 mom1y(i) =-ymom1
139 mom1z(i) =-zmom1
140 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
141 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
142 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
143C
144 ymom2 = ymom(i) + half*al(i)*forz(i)
145 zmom2 = zmom(i) - half*al(i)*fory(i)
146 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
147 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
148 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
149 ENDDO
150C-------------------------
151C ASSEMBLE
152C-------------------------
153 IF (ivector == 1) THEN
154#include "vectorize.inc"
155 DO i=1,nel
156 ii = i+nft
157 n = iadr(1,ii)
158 fskyv(n,4)=m11(i)
159 fskyv(n,5)=m21(i)
160 fskyv(n,6)=m31(i)
161 mx1(i) = -m11(i)
162 my1(i) = -m21(i)
163 mz1(i) = -m31(i)
164 fskyv(n,8)=stir(1,i)
165 n = iadr(2,ii)
166 fskyv(n,4)=-m12(i)
167 fskyv(n,5)=-m22(i)
168 fskyv(n,6)=-m32(i)
169 mx2(i) = m12(i)
170 my2(i) = m22(i)
171 mz2(i) = m32(i)
172 fskyv(n,8)=stir(2,i)
173 ENDDO
174 ELSE
175 DO i=1,nel
176 ii = i+nft
177 n = iadr(1,ii)
178 fsky(4,n)=m11(i)
179 fsky(5,n)=m21(i)
180 fsky(6,n)=m31(i)
181 mx1(i) = -m11(i)
182 my1(i) = -m21(i)
183 mz1(i) = -m31(i)
184 fsky(8,n)=stir(1,i)
185 n = iadr(2,ii)
186 fsky(4,n)=-m12(i)
187 fsky(5,n)=-m22(i)
188 fsky(6,n)=-m32(i)
189 mx2(i) = m12(i)
190 my2(i) = m22(i)
191 mz2(i) = m32(i)
192 fsky(8,n)=stir(2,i)
193 ENDDO
194 ENDIF
195C---
196 RETURN
197 END
subroutine r5cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, mom1y, mom1z, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
Definition r5cum3p.F:39
subroutine rforc3(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, sensors, offset, anim, partsav, ipartr, tani, fr_wave, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, itask, h3d_data, jsms, nft, iad, igre, preld1, stf_f, stf, sanin, iresp, impl_s, idyna, snpc)
Definition rforc3.F:105