OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r5cum3.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!|| r5cum3 ../engine/source/elements/spring/r5cum3.F
25!||--- called by ------------------------------------------------------
26!|| rforc3 ../engine/source/elements/spring/rforc3.F
27!||====================================================================
28 SUBROUTINE r5cum3(
29 1 F, FORX, FORY, FORZ,
30 2 XM, XMOM, YMOM, ZMOM,
31 3 STI, STIR, STIFN, STIFR,
32 4 FX1, FX2, FY1, FY2,
33 5 FZ1, FZ2, MX1, MX2,
34 6 MY1, MY2, MZ1, MZ2,
35 7 MOM1Y, MOM1Z, AL, EXX,
36 8 EYX, EZX, EXY, EYY,
37 9 EZY, EXZ, EYZ, EZZ,
38 A NC1, NC2, NEL)
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER, INTENT(IN) :: NEL
54 INTEGER NC1(*),NC2(*)
55C REAL
56 my_real
57 . F(3,*), FORX(*), FORY(*), FORZ(*), XM(3,*), XMOM(*),
58 . YMOM(*), ZMOM(*), STI(3,*),STIR(3,*),STIFN(*),STIFR(*),
59 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
60 . FX2(MVSIZ),FY2(MVSIZ),FZ2(MVSIZ),
61 . MX1(MVSIZ),MY1(MVSIZ),MZ1(MVSIZ),
62 . MX2(MVSIZ),MY2(MVSIZ),MZ2(MVSIZ),
63 . mom1y(mvsiz),mom1z(mvsiz),
64 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz),
65 . exy(mvsiz), eyy(mvsiz), ezy(mvsiz),
66 . exz(mvsiz), eyz(mvsiz), ezz(mvsiz),al(mvsiz)
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER I, J
71C REAL
72 my_real
73 . F11(MVSIZ), F21(MVSIZ), F31(MVSIZ),
74 . M11(MVSIZ), M21(MVSIZ), M31(MVSIZ),
75 . M12(MVSIZ), M22(MVSIZ), M32(MVSIZ),
76 . YMOM1, YMOM2, ZMOM1, ZMOM2, YMOM1P, ZMOM1P,
77 . YMOM2P,ZMOM2P
78C-----------------------------------------------
79 DO I=1,nel
80 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
81 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
82 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
83 ENDDO
84C-------------------------
85C ASSEMBLE
86C-------------------------
87 DO i=1,nel
88 f(1,nc1(i))=f(1,nc1(i))+f11(i)
89 f(2,nc1(i))=f(2,nc1(i))+f21(i)
90 f(3,nc1(i))=f(3,nc1(i))+f31(i)
91 fx1(i) = -f11(i)
92 fy1(i) = -f21(i)
93 fz1(i) = -f31(i)
94 stifn(nc1(i))=stifn(nc1(i))+sti(1,i)
95C
96 f(1,nc2(i))=f(1,nc2(i))-f11(i)
97 f(2,nc2(i))=f(2,nc2(i))-f21(i)
98 f(3,nc2(i))=f(3,nc2(i))-f31(i)
99 fx2(i) = f11(i)
100 fy2(i) = f21(i)
101 fz2(i) = f31(i)
102 stifn(nc2(i))=stifn(nc2(i))+sti(2,i)
103 ENDDO
104C-------------------------
105C MOMENTS
106C-------------------------
107 DO i=1,nel
108 ymom1 = ymom(i) - half*al(i)*forz(i)
109 zmom1 = zmom(i) + half*al(i)*fory(i)
110 mom1y(i) =-ymom1
111 mom1z(i) =-zmom1
112 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
113 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
114 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
115C
116 ymom2 = ymom(i) + half*al(i)*forz(i)
117 zmom2 = zmom(i) - half*al(i)*fory(i)
118 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
119 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
120 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
121 ENDDO
122C-------------------------
123C ASSEMBLE
124C-------------------------
125 DO i=1,nel
126 xm(1,nc1(i))=xm(1,nc1(i))+m11(i)
127 xm(2,nc1(i))=xm(2,nc1(i))+m21(i)
128 xm(3,nc1(i))=xm(3,nc1(i))+m31(i)
129 mx1(i) = -m11(i)
130 my1(i) = -m21(i)
131 mz1(i) = -m31(i)
132 stifr(nc1(i))=stifr(nc1(i))+stir(1,i)
133C
134 xm(1,nc2(i))=xm(1,nc2(i))-m12(i)
135 xm(2,nc2(i))=xm(2,nc2(i))-m22(i)
136 xm(3,nc2(i))=xm(3,nc2(i))-m32(i)
137 mx2(i) = m12(i)
138 my2(i) = m22(i)
139 mz2(i) = m32(i)
140 stifr(nc2(i))=stifr(nc2(i))+stir(2,i)
141 ENDDO
142C---
143 RETURN
144 END
subroutine r5cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, mom1y, mom1z, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
Definition r5cum3.F:39