OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sgparav3.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!|| sgparav3 ../engine/source/elements/solid/solide/sgparav3.F
25!||--- called by ------------------------------------------------------
26!|| s6cforc3 ../engine/source/elements/thickshell/solide6c/s6cforc3.F
27!|| s8cforc3 ../engine/source/elements/thickshell/solide8c/s8cforc3.F
28!|| scforc3 ../engine/source/elements/thickshell/solidec/scforc3.F
29!||====================================================================
30 SUBROUTINE sgparav3(
31 1 NPE, X, IXS, RX,
32 2 RY, RZ, SX, SY,
33 3 SZ, TX, TY, TZ,
34 4 NEL)
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER, INTENT(IN) :: NEL
50 INTEGER NPE
51 INTEGER IXS(NIXS,*)
52C REAL
54 . x(3,*),rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),
55 . tx(*), ty(*), tz(*)
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I,NPE1,N
60 INTEGER NC(MVSIZ,NPE)
61C REAL
62 my_real
63 . x0(mvsiz,npe), y0(mvsiz,npe), z0(mvsiz,npe)
64C-----------------------------------------------
65C
66 npe1=npe-1
67 IF (npe==4.OR.npe==10) THEN
68 DO i=1,nel
69 nc(i,1)=ixs(2,i)
70 nc(i,2)=ixs(4,i)
71 nc(i,3)=ixs(7,i)
72 nc(i,4)=ixs(6,i)
73 ENDDO
74 ELSEIF (npe==6) THEN
75 DO i=1,nel
76 nc(i,1)=ixs(2,i)
77 nc(i,2)=ixs(3,i)
78 nc(i,3)=ixs(4,i)
79 nc(i,4)=ixs(6,i)
80 nc(i,5)=ixs(7,i)
81 nc(i,6)=ixs(8,i)
82 ENDDO
83 ELSE
84 DO n=1,npe
85 DO i=1,nel
86 nc(i,n)=ixs(n+1,i)
87 ENDDO
88 ENDDO
89 ENDIF
90C----------------------------
91C NODAL COORDINATES /
92C----------------------------
93 DO n=1,npe
94 DO i=1,nel
95 x0(i,n)=x(1,nc(i,n))
96 y0(i,n)=x(2,nc(i,n))
97 z0(i,n)=x(3,nc(i,n))
98 ENDDO
99 ENDDO
100C----------------------------
101C R,S,T |
102C----------------------------
103 SELECT CASE (npe)
104 CASE(4,10)
105 DO i=1,nel
106 rx(i) = x0(i,1) - x0(i,4)
107 ry(i) = y0(i,1) - y0(i,4)
108 rz(i) = z0(i,1) - z0(i,4)
109C
110 sx(i) = x0(i,2) - x0(i,4)
111 sy(i) = y0(i,2) - y0(i,4)
112 sz(i) = z0(i,2) - z0(i,4)
113C
114 tx(i) = x0(i,3) - x0(i,4)
115 ty(i) = y0(i,3) - y0(i,4)
116 tz(i) = z0(i,3) - z0(i,4)
117 ENDDO
118 CASE(6)
119 DO i=1,nel
120 rx(i) = x0(i,3) + x0(i,6) - x0(i,1)- x0(i,4)
121 ry(i) = y0(i,3) + y0(i,6) - y0(i,1)- y0(i,4)
122 rz(i) = z0(i,3) + z0(i,6) - z0(i,1) - z0(i,4)
123C
124 sx(i) = (x0(i,4)+x0(i,5)+x0(i,6)-x0(i,1)+x0(i,2)+x0(i,3))*third
125 sy(i) = (y0(i,4)+y0(i,5)+y0(i,6)-y0(i,1)+y0(i,2)+y0(i,3))*third
126 sz(i) = (z0(i,4)+z0(i,5)+z0(i,6)-z0(i,1)+z0(i,2)+z0(i,3))*third
127C
128 tx(i) = x0(i,2) + x0(i,5)- x0(i,1) - x0(i,4)
129 ty(i) = y0(i,2) + y0(i,5)- y0(i,1) - y0(i,4)
130 tz(i) = z0(i,2) + z0(i,5)- z0(i,1) - z0(i,4)
131 ENDDO
132 CASE(8)
133 DO i=1,nel
134 rx(i) = x0(i,3)+x0(i,4)+x0(i,7)+x0(i,8)-
135 . (x0(i,1)+x0(i,2)+x0(i,5)+x0(i,6))
136 ry(i) = y0(i,3)+y0(i,4)+y0(i,7)+y0(i,8)-
137 . (y0(i,1)+y0(i,2)+y0(i,5)+y0(i,6))
138 rz(i) = z0(i,3)+z0(i,4)+z0(i,7)+z0(i,8)-
139 . (z0(i,1)+z0(i,2)+z0(i,5)+z0(i,6))
140C
141 sx(i) = x0(i,5)+x0(i,6)+x0(i,7)+x0(i,8)-
142 . (x0(i,1)+x0(i,2)+x0(i,3)+x0(i,4))
143 sy(i) = y0(i,5)+y0(i,6)+y0(i,7)+y0(i,8)-
144 . (y0(i,1)+y0(i,2)+y0(i,3)+y0(i,4))
145 sz(i) = z0(i,5)+z0(i,6)+z0(i,7)+z0(i,8)-
146 . (z0(i,1)+z0(i,2)+z0(i,3)+z0(i,4))
147C
148 tx(i) = x0(i,3)+x0(i,2)+x0(i,7)+x0(i,6)-
149 . (x0(i,1)+x0(i,4)+x0(i,5)+x0(i,8))
150 ty(i) = y0(i,3)+y0(i,2)+y0(i,7)+y0(i,6)-
151 . (y0(i,1)+y0(i,4)+y0(i,5)+y0(i,8))
152 tz(i) = z0(i,3)+z0(i,2)+z0(i,7)+z0(i,6)-
153 . (z0(i,1)+z0(i,4)+z0(i,5)+z0(i,8))
154C
155 ENDDO
156 END SELECT
157C
158 RETURN
159 END
#define my_real
Definition cppsort.cpp:32
subroutine sgparav3(npe, x, ixs, rx, ry, rz, sx, sy, sz, tx, ty, tz, nel)
Definition sgparav3.F:35