37 use element_mod , only : nixs
38
39
40
41#include "implicit_f.inc"
42
43
44
45#include "mvsiz_p.inc"
46
47
48
49
50
51
52 INTEGER, INTENT(IN) :: NEL
53 INTEGER NPE
54 INTEGER IXS(NIXS,*)
55
57 . x(3,*),rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),
58 . tx(*), ty(*), tz(*)
59
60
61
62 INTEGER I,NPE1,N
63 INTEGER NC(MVSIZ,NPE)
64
66 . x0(mvsiz,npe), y0(mvsiz,npe), z0(mvsiz,npe)
67
68
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
93
94
95
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
103
104
105
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)
112
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)
116
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)
126
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
130
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))
143
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))
150
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))
157
158 ENDDO
159 END SELECT
160
161 RETURN