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 32 of file sgparav3.F.

37 use element_mod , only : nixs
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.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-----------------------------------------------
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER, INTENT(IN) :: NEL
53 INTEGER NPE
54 INTEGER IXS(NIXS,*)
55C REAL
57 . x(3,*),rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),
58 . tx(*), ty(*), tz(*)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER I,NPE1,N
63 INTEGER NC(MVSIZ,NPE)
64C REAL
66 . x0(mvsiz,npe), y0(mvsiz,npe), z0(mvsiz,npe)
67C-----------------------------------------------
68C
69 npe1=npe-1
70 IF (npe==4.OR.npe==10) THEN
71 DO i=1,nel
72 nc(i,1)=ixs(2,i)
73 nc(i,2)=ixs(4,i)
74 nc(i,3)=ixs(7,i)
75 nc(i,4)=ixs(6,i)
76 ENDDO
77 ELSEIF (npe==6) THEN
78 DO i=1,nel
79 nc(i,1)=ixs(2,i)
80 nc(i,2)=ixs(3,i)
81 nc(i,3)=ixs(4,i)
82 nc(i,4)=ixs(6,i)
83 nc(i,5)=ixs(7,i)
84 nc(i,6)=ixs(8,i)
85 ENDDO
86 ELSE
87 DO n=1,npe
88 DO i=1,nel
89 nc(i,n)=ixs(n+1,i)
90 ENDDO
91 ENDDO
92 ENDIF
93C----------------------------
94C NODAL COORDINATES /
95C----------------------------
96 DO n=1,npe
97 DO i=1,nel
98 x0(i,n)=x(1,nc(i,n))
99 y0(i,n)=x(2,nc(i,n))
100 z0(i,n)=x(3,nc(i,n))
101 ENDDO
102 ENDDO
103C----------------------------
104C R,S,T |
105C----------------------------
106 SELECT CASE (npe)
107 CASE(4,10)
108 DO i=1,nel
109 rx(i) = x0(i,1) - x0(i,4)
110 ry(i) = y0(i,1) - y0(i,4)
111 rz(i) = z0(i,1) - z0(i,4)
112C
113 sx(i) = x0(i,2) - x0(i,4)
114 sy(i) = y0(i,2) - y0(i,4)
115 sz(i) = z0(i,2) - z0(i,4)
116C
117 tx(i) = x0(i,3) - x0(i,4)
118 ty(i) = y0(i,3) - y0(i,4)
119 tz(i) = z0(i,3) - z0(i,4)
120 ENDDO
121 CASE(6)
122 DO i=1,nel
123 rx(i) = x0(i,3) + x0(i,6) - x0(i,1)- x0(i,4)
124 ry(i) = y0(i,3) + y0(i,6) - y0(i,1)- y0(i,4)
125 rz(i) = z0(i,3) + z0(i,6) - z0(i,1) - z0(i,4)
126C
127 sx(i) = (x0(i,4)+x0(i,5)+x0(i,6)-x0(i,1)+x0(i,2)+x0(i,3))*third
128 sy(i) = (y0(i,4)+y0(i,5)+y0(i,6)-y0(i,1)+y0(i,2)+y0(i,3))*third
129 sz(i) = (z0(i,4)+z0(i,5)+z0(i,6)-z0(i,1)+z0(i,2)+z0(i,3))*third
130C
131 tx(i) = x0(i,2) + x0(i,5)- x0(i,1) - x0(i,4)
132 ty(i) = y0(i,2) + y0(i,5)- y0(i,1) - y0(i,4)
133 tz(i) = z0(i,2) + z0(i,5)- z0(i,1) - z0(i,4)
134 ENDDO
135 CASE(8)
136 DO i=1,nel
137 rx(i) = x0(i,3)+x0(i,4)+x0(i,7)+x0(i,8)-
138 . (x0(i,1)+x0(i,2)+x0(i,5)+x0(i,6))
139 ry(i) = y0(i,3)+y0(i,4)+y0(i,7)+y0(i,8)-
140 . (y0(i,1)+y0(i,2)+y0(i,5)+y0(i,6))
141 rz(i) = z0(i,3)+z0(i,4)+z0(i,7)+z0(i,8)-
142 . (z0(i,1)+z0(i,2)+z0(i,5)+z0(i,6))
143C
144 sx(i) = x0(i,5)+x0(i,6)+x0(i,7)+x0(i,8)-
145 . (x0(i,1)+x0(i,2)+x0(i,3)+x0(i,4))
146 sy(i) = y0(i,5)+y0(i,6)+y0(i,7)+y0(i,8)-
147 . (y0(i,1)+y0(i,2)+y0(i,3)+y0(i,4))
148 sz(i) = z0(i,5)+z0(i,6)+z0(i,7)+z0(i,8)-
149 . (z0(i,1)+z0(i,2)+z0(i,3)+z0(i,4))
150C
151 tx(i) = x0(i,3)+x0(i,2)+x0(i,7)+x0(i,6)-
152 . (x0(i,1)+x0(i,4)+x0(i,5)+x0(i,8))
153 ty(i) = y0(i,3)+y0(i,2)+y0(i,7)+y0(i,6)-
154 . (y0(i,1)+y0(i,4)+y0(i,5)+y0(i,8))
155 tz(i) = z0(i,3)+z0(i,2)+z0(i,7)+z0(i,6)-
156 . (z0(i,1)+z0(i,4)+z0(i,5)+z0(i,8))
157C
158 ENDDO
159 END SELECT
160C
161 RETURN
#define my_real
Definition cppsort.cpp:32