OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sgparav3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine sgparav3 (npe, x, ixs, rx, ry, rz, sx, sy, sz, tx, ty, tz, nel)

Function/Subroutine Documentation

◆ sgparav3()

subroutine sgparav3 ( integer npe,
x,
integer, dimension(nixs,*) ixs,
rx,
ry,
rz,
sx,
sy,
sz,
tx,
ty,
tz,
integer, intent(in) nel )

Definition at line 30 of file sgparav3.F.

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
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
#define my_real
Definition cppsort.cpp:32