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, J
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, YMOM1P, ZMOM1P,
81 . YMOM2P,ZMOM2P
82C-----------------------------------------------
83 DO I=1,nel
84 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
85 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
86 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
87 ENDDO
88C-------------------------
89C ASSEMBLE
90C-------------------------
91 IF (ivector == 1) THEN
92#include "vectorize.inc"
93 DO i=1,nel
94 ii = i+nft
95 n = iadr(1,ii)
96 fskyv(n,1)=f11(i)
97 fskyv(n,2)=f21(i)
98 fskyv(n,3)=f31(i)
99 fx1(i) = -f11(i)
100 fy1(i) = -f21(i)
101 fz1(i) = -f31(i)
102 fskyv(n,7)=sti(1,i)
103 n = iadr(2,ii)
104 fskyv(n,1)=-f11(i)
105 fskyv(n,2)=-f21(i)
106 fskyv(n,3)=-f31(i)
107 fx2(i) = f11(i)
108 fy2(i) = f21(i)
109 fz2(i) = f31(i)
110 fskyv(n,7)=sti(2,i)
111 ENDDO
112 ELSE
113 DO i=1,nel
114 ii = i+nft
115 n = iadr(1,ii)
116 fsky(1,n)=f11(i)
117 fsky(2,n)=f21(i)
118 fsky(3,n)=f31(i)
119 fx1(i) = -f11(i)
120 fy1(i) = -f21(i)
121 fz1(i) = -f31(i)
122 fsky(7,n)=sti(1,i)
123 n = iadr(2,ii)
124 fsky(1,n)=-f11(i)
125 fsky(2,n)=-f21(i)
126 fsky(3,n)=-f31(i)
127 fx2(i) = f11(i)
128 fy2(i) = f21(i)
129 fz2(i) = f31(i)
130 fsky(7,n)=sti(2,i)
131 ENDDO
132 ENDIF
133C-------------------------
134C MOMENTS
135C-------------------------
136 DO i=1,nel
137 ymom1 = ymom(i) - half*al(i)*forz(i)
138 zmom1 = zmom(i) + half*al(i)*fory(i)
139 mom1y(i) =-ymom1
140 mom1z(i) =-zmom1
141 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
142 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
143 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
144C
145 ymom2 = ymom(i) + half*al(i)*forz(i)
146 zmom2 = zmom(i) - half*al(i)*fory(i)
147 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
148 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
149 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
150 ENDDO
151C-------------------------
152C ASSEMBLE
153C-------------------------
154 IF (ivector == 1) THEN
155#include "vectorize.inc"
156 DO i=1,nel
157 ii = i+nft
158 n = iadr(1,ii)
159 fskyv(n,4)=m11(i)
160 fskyv(n,5)=m21(i)
161 fskyv(n,6)=m31(i)
162 mx1(i) = -m11(i)
163 my1(i) = -m21(i)
164 mz1(i) = -m31(i)
165 fskyv(n,8)=stir(1,i)
166 n = iadr(2,ii)
167 fskyv(n,4)=-m12(i)
168 fskyv(n,5)=-m22(i)
169 fskyv(n,6)=-m32(i)
170 mx2(i) = m12(i)
171 my2(i) = m22(i)
172 mz2(i) = m32(i)
173 fskyv(n,8)=stir(2,i)
174 ENDDO
175 ELSE
176 DO i=1,nel
177 ii = i+nft
178 n = iadr(1,ii)
179 fsky(4,n)=m11(i)
180 fsky(5,n)=m21(i)
181 fsky(6,n)=m31(i)
182 mx1(i) = -m11(i)
183 my1(i) = -m21(i)
184 mz1(i) = -m31(i)
185 fsky(8,n)=stir(1,i)
186 n = iadr(2,ii)
187 fsky(4,n)=-m12(i)
188 fsky(5,n)=-m22(i)
189 fsky(6,n)=-m32(i)
190 mx2(i) = m12(i)
191 my2(i) = m22(i)
192 mz2(i) = m32(i)
193 fsky(8,n)=stir(2,i)
194 ENDDO
195 ENDIF
196C---
197 RETURN
198 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