OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r4cum3p.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!|| r4cum3p ../engine/source/elements/spring/r4cum3p.F
25!||--- called by ------------------------------------------------------
26!|| r23law113 ../engine/source/elements/spring/r23law113.F
27!|| r23law114 ../engine/source/elements/spring/r23law114.F
28!|| rforc3 ../engine/source/elements/spring/rforc3.F
29!||====================================================================
30 SUBROUTINE r4cum3p(
31 1 FORX, FORY, FORZ, XMOM,
32 2 YMOM, ZMOM, STI, STIR,
33 3 FSKY, FSKYV, IADR, FX1,
34 4 FX2, FY1, FY2, FZ1,
35 5 FZ2, MX1, MX2, MY1,
36 6 MY2, MZ1, MZ2, EXX,
37 7 EYX, EZX, EXY, EYY,
38 8 EZY, EXZ, EYZ, EZZ,
39 9 AL, NEL, NFT)
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44#include "comlock.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "parit_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER, INTENT(IN) :: NEL
57 INTEGER, INTENT(IN) :: NFT
58 INTEGER IADR(3,*)
59C REAL
60 my_real
61 . FORX(*), FORY(*), FORZ(*), XMOM(*),
62 . YMOM(*),ZMOM(*),STI(3,*),STIR(3,*),FSKYV(LSKY,8),
63 . 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 . 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
75C 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 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
140 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
141 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
142 ymom2 = ymom(i) + half*al(i)*forz(i)
143 zmom2 = zmom(i) - half*al(i)*fory(i)
144 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
145 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
146 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
147 ENDDO
148C-------------------------
149C ASSEMBLE
150C-------------------------
151 IF (ivector == 1) THEN
152#include "vectorize.inc"
153 DO i=1,nel
154 ii = i+nft
155 n = iadr(1,ii)
156 fskyv(n,4)=m11(i)
157 fskyv(n,5)=m21(i)
158 fskyv(n,6)=m31(i)
159 mx1(i) = -m11(i)
160 my1(i) = -m21(i)
161 mz1(i) = -m31(i)
162 fskyv(n,8)=stir(1,i)
163 n = iadr(2,ii)
164 fskyv(n,4)=-m12(i)
165 fskyv(n,5)=-m22(i)
166 fskyv(n,6)=-m32(i)
167 mx2(i) = m12(i)
168 my2(i) = m22(i)
169 mz2(i) = m32(i)
170 fskyv(n,8)=stir(2,i)
171 ENDDO
172 ELSE
173 DO i=1,nel
174 ii = i+nft
175 n = iadr(1,ii)
176 fsky(4,n)=m11(i)
177 fsky(5,n)=m21(i)
178 fsky(6,n)=m31(i)
179 mx1(i) = -m11(i)
180 my1(i) = -m21(i)
181 mz1(i) = -m31(i)
182 fsky(8,n)=stir(1,i)
183 n = iadr(2,ii)
184 fsky(4,n)=-m12(i)
185 fsky(5,n)=-m22(i)
186 fsky(6,n)=-m32(i)
187 mx2(i) = m12(i)
188 my2(i) = m22(i)
189 mz2(i) = m32(i)
190 fsky(8,n)=stir(2,i)
191 ENDDO
192 ENDIF
193C---
194 RETURN
195 END
subroutine r4cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
Definition r4cum3p.F:40