OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
pmcum3p.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!|| pmcum3p ../engine/source/elements/beam/pmcum3p.F
25!||--- called by ------------------------------------------------------
26!|| pforc3 ../engine/source/elements/beam/pforc3.F
27!||====================================================================
28 SUBROUTINE pmcum3p(
29 1 STIR, FSKY, FSKYV, IADP,
30 2 MX1, MX2, MY1, MY2,
31 3 MZ1, MZ2, NC1, NC2,
32 4 NC3, E1X, E1Y, E1Z,
33 5 E2X, E2Y, E2Z, E3X,
34 6 E3Y, E3Z, M11, M12,
35 7 M21, M22, M31, M32,
36 8 NEL, NFT)
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41#include "comlock.inc"
42C-----------------------------------------------
43C G l o b a l P a r a m e t e r s
44C-----------------------------------------------
45#include "mvsiz_p.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "parit_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER, INTENT(IN) :: NEL
54 INTEGER, INTENT(IN) :: NFT
55 INTEGER NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ)
56 my_real
57 . FSKYV(LSKY,8),FSKY(8,LSKY),STIR(*),
58 . MX1(MVSIZ),MY1(MVSIZ),MZ1(MVSIZ),
59 . MX2(MVSIZ),MY2(MVSIZ),MZ2(MVSIZ),
60 . E1X(MVSIZ),E1Y(MVSIZ),E1Z(MVSIZ),
61 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
62 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
63 . m11(mvsiz),m12(mvsiz),m21(mvsiz),
64 . m22(mvsiz),m31(mvsiz),m32(mvsiz)
65 INTEGER IADP(2,*)
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER I, II, N,J
70 my_real
71 . G11(MVSIZ),G21(MVSIZ),G31(MVSIZ),
72 . G12(MVSIZ),G22(MVSIZ),G32(MVSIZ)
73C-----------------------------------------------
74 DO i=1,nel
75 g11(i)=m11(i)
76 g21(i)=m21(i)
77 g31(i)=m31(i)
78 g12(i)=m12(i)
79 g22(i)=m22(i)
80 g32(i)=m32(i)
81 ENDDO
82C
83 DO i=1,nel
84 m11(i)=e1x(i)*g11(i)+e2x(i)*g21(i)+e3x(i)*g31(i)
85 m21(i)=e1y(i)*g11(i)+e2y(i)*g21(i)+e3y(i)*g31(i)
86 m31(i)=e1z(i)*g11(i)+e2z(i)*g21(i)+e3z(i)*g31(i)
87 m12(i)=e1x(i)*g12(i)+e2x(i)*g22(i)+e3x(i)*g32(i)
88 m22(i)=e1y(i)*g12(i)+e2y(i)*g22(i)+e3y(i)*g32(i)
89 m32(i)=e1z(i)*g12(i)+e2z(i)*g22(i)+e3z(i)*g32(i)
90 ENDDO
91C-------------------------
92C ASSEMBLAGE
93C-------------------------
94 IF (ivector == 1) THEN
95#include "vectorize.inc"
96 DO i=1,nel
97 ii = i + nft
98 n = iadp(1,ii)
99 fskyv(n,4)=-m11(i)
100 fskyv(n,5)=-m21(i)
101 fskyv(n,6)=-m31(i)
102 mx1(i) = m11(i)
103 my1(i) = m21(i)
104 mz1(i) = m31(i)
105 fskyv(n,8)=stir(i)
106 n = iadp(2,ii)
107 fskyv(n,4)=-m12(i)
108 fskyv(n,5)=-m22(i)
109 fskyv(n,6)=-m32(i)
110 mx2(i) = m12(i)
111 my2(i) = m22(i)
112 mz2(i) = m32(i)
113 fskyv(n,8)=stir(i)
114 ENDDO
115 ELSE
116 DO i=1,nel
117 ii = i + nft
118 n = iadp(1,ii)
119 fsky(4,n)=-m11(i)
120 fsky(5,n)=-m21(i)
121 fsky(6,n)=-m31(i)
122 mx1(i) = m11(i)
123 my1(i) = m21(i)
124 mz1(i) = m31(i)
125 fsky(8,n)=stir(i)
126 n = iadp(2,ii)
127 fsky(4,n)=-m12(i)
128 fsky(5,n)=-m22(i)
129 fsky(6,n)=-m32(i)
130 mx2(i) = m12(i)
131 my2(i) = m22(i)
132 mz2(i) = m32(i)
133 fsky(8,n)=stir(i)
134 ENDDO
135 ENDIF
136C-----------------------------------------------
137 RETURN
138 END
subroutine pmcum3p(stir, fsky, fskyv, iadp, mx1, mx2, my1, my2, mz1, mz2, nc1, nc2, nc3, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, m11, m12, m21, m22, m31, m32, nel, nft)
Definition pmcum3p.F:37