55
56
57
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "mvsiz_p.inc"
68
69
70
71#include "com01_c.inc"
72#include "param_c.inc"
73
74
75
76 INTEGER, INTENT(IN) :: NEL
77 INTEGER, INTENT(IN) :: NFT
78 INTEGER, INTENT(IN) :: JHBE
80 . vol(*), veul(lveul,*),
81 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
82 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
83 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
84 . px1(*), px2(*), px3(*), px4(*),
85 . py1(*), py2(*), py3(*), py4(*),
86 . pz1(*), pz2(*), pz3(*), pz4(*),
87 . px5(*), px6(*), px7(*), px8(*),
88 . py5(*), py6(*), py7(*), py8(*),
89 . pz5(*), pz6(*), pz7(*), pz8(*),
90 . px1h1(*), px1h2(*), px1h3(*),
91 . px2h1(*), px2h2(*), px2h3(*),
92 . px3h1(*), px3h2(*), px3h3(*),
93 . px4h1(*), px4h2(*), px4h3(*),
94 . det(*),deltax(*)
96 . n1x(*), n2x(*), n3x(*), n4x(*), n5x(*), n6x(*),
97 . n1y(*), n2y(*), n3y(*), n4y(*), n5y(*), n6y(*),
98 . n1z(*), n2z(*), n3z(*), n4z(*), n5z(*), n6z(*)
99
100
101
102 INTEGER I, II
104 . hx,hy,hz,
105 . pmx1(mvsiz), pmx2(mvsiz), pmx3(mvsiz), pmx4(mvsiz),
106 . pmy1(mvsiz), pmy2(mvsiz), pmy3(mvsiz), pmy4(mvsiz),
107 . pmz1(mvsiz), pmz2(mvsiz), pmz3(mvsiz), pmz4(mvsiz)
108
109
110
111 IF(integ8==0)THEN
112 DO i=1,nel
113 ii=i+nft
114 px1(i)=veul(1,ii)
115 px2(i)=veul(2,ii)
116 px3(i)=veul(3,ii)
117 px4(i)=veul(4,ii)
118
119 py1(i)=veul(5,ii)
120 py2(i)=veul(6,ii)
121 py3(i)=veul(7,ii)
122 py4(i)=veul(8,ii)
123
124 pz1(i)=veul(9,ii)
125 pz2(i)=veul(10,ii)
126 pz3(i)=veul(11,ii)
127 pz4(i)=veul(12,ii)
128 ENDDO
129 ELSE
130 DO i=1,nel
131 ii=i+nft
132 px1(i)=veul(1,ii)
133 px2(i)=veul(2,ii)
134 px3(i)=veul(3,ii)
135 px4(i)=veul(4,ii)
136 px5(i)=veul(5,ii)
137 px6(i)=veul(6,ii)
138 px7(i)=veul(7,ii)
139 px8(i)=veul(8,ii)
140
141 py1(i)=veul(9,ii)
142 py2(i)=veul(10,ii)
143 py3(i)=veul(11,ii)
144 py4(i)=veul(12,ii)
145 py5(i)=veul(32,ii)
146 py6(i)=veul(33,ii)
147 py7(i)=veul(34,ii)
148 py8(i)=veul(35,ii)
149
150 pz1(i)=veul(36,ii)
151 pz2(i)=veul(37,ii)
152 pz3(i)=veul(38,ii)
153 pz4(i)=veul(39,ii)
154 pz5(i)=veul(40,ii)
155 pz6(i)=veul(41,ii)
156 pz7(i)=veul(42,ii)
157 pz8(i)=veul(43,ii)
158 ENDDO
159 ENDIF
160
161 DO i=1,nel
162 ii=i+nft
163 deltax(i)=veul(13,ii)
164 det(i)=vol(i)
165 ENDDO
166 IF(jhbe/=0)THEN
167 IF(integ8==0)THEN
168 DO i=1,nel
169 pmx1(i)=px1(i)
170 pmy1(i)=py1(i)
171 pmz1(i)=pz1(i)
172 pmx2(i)=px2(i)
173 pmy2(i)=py2(i)
174 pmz2(i)=pz2(i)
175 pmx3(i)=px3(i)
176 pmy3(i)=py3(i)
177 pmz3(i)=pz3(i)
178 pmx4(i)=px4(i)
179 pmy4(i)=py4(i)
180 pmz4(i)=pz4(i)
181 ENDDO
182 ELSE
183 DO i=1,nel
184 pmx1(i)=half*(px1(i)-px7(i))
185 pmy1(i)=half*(py1(i)-py7(i))
186 pmz1(i)=half*(pz1(i)-pz7(i))
187 pmx2(i)=half*(px2(i)-px8(i))
188 pmy2(i)=half*(py2(i)-py8(i))
189 pmz2(i)=half*(pz2(i)-pz8(i))
190 pmx3(i)=half*(px3(i)-px5(i))
191 pmy3(i)=half*(py3(i)-py5(i))
192 pmz3(i)=half*(pz3(i)-pz5(i))
193 pmx4(i)=half*(px4(i)-px6(i))
194 pmy4(i)=half*(py4(i)-py6(i))
195 pmz4(i)=half*(pz4(i)-pz6(i))
196 ENDDO
197 ENDIF
198 DO i=1,nel
199
200 hx=(x1(i)-x2(i)+x3(i)-x4(i)+x5(i)-x6(i)+x7(i)-x8(i))
201 hy=(y1(i)-y2(i)+y3(i)-y4(i)+y5(i)-y6(i)+y7(i)-y8(i))
202 hz=(z1(i)-z2(i)+z3(i)-z4(i)+z5(i)-z6(i)+z7(i)-z8(i))
203 px1h1(i)=pmx1(i)*hx+ pmy1(i)*hy+pmz1(i)*hz
204 px2h1(i)=pmx2(i)*hx+ pmy2(i)*hy+pmz2(i)*hz
205 px3h1(i)=pmx3(i)*hx+ pmy3(i)*hy+pmz3(i)*hz
206 px4h1(i)=pmx4(i)*hx+ pmy4(i)*hy+pmz4(i)*hz
207 ENDDO
208
209 DO i=1,nel
210 hx=(x1(i)+x2(i)-x3(i)-x4(i)-x5(i)-x6(i)+x7(i)+x8(i))
211 hy=(y1(i)+y2(i)-y3(i)-y4(i)-y5(i)-y6(i)+y7(i)+y8(i))
212 hz=(z1(i)+z2(i)-z3(i)-z4(i)-z5(i)-z6(i)+z7(i)+z8(i))
213 px1h2(i)=pmx1(i)*hx+ pmy1(i)*hy+pmz1(i)*hz
214 px2h2(i)=pmx2(i)*hx+ pmy2(i)*hy+pmz2(i)*hz
215 px3h2(i)=pmx3(i)*hx+ pmy3(i)*hy+pmz3(i)*hz
216 px4h2(i)=pmx4(i)*hx+ pmy4(i)*hy+pmz4(i)*hz
217 ENDDO
218
219 DO i=1,nel
220 hx=(x1(i)-x2(i)-x3(i)+x4(i)-x5(i)+x6(i)+x7(i)-x8(i))
221 hy=(y1(i)-y2(i)-y3(i)+y4(i)-y5(i)+y6(i)+y7(i)-y8(i))
222 hz=(z1(i)-z2(i)-z3(i)+z4(i)-z5(i)+z6(i)+z7(i)-z8(i))
223 px1h3(i)=pmx1(i)*hx+ pmy1(i)*hy+pmz1(i)*hz
224 px2h3(i)=pmx2(i)*hx+ pmy2(i)*hy+pmz2(i)*hz
225 px3h3(i)=pmx3(i)*hx+ pmy3(i)*hy+pmz3(i)*hz
226 px4h3(i)=pmx4(i)*hx+ pmy4(i)*hy+pmz4(i)*hz
227 ENDDO
228 ENDIF
229
231 DO i=1,nel
232 ii=i+nft
233 n1x(i)=veul(14,ii)
234 n2x(i)=veul(15,ii)
235 n3x(i)=veul(16,ii)
236 n4x(i)=veul(17,ii)
237 n5x(i)=veul(18,ii)
238 n6x(i)=veul(19,ii)
239 n1y(i)=veul(20,ii)
240 n2y(i)=veul(21,ii)
241 n3y(i)=veul(22,ii)
242 n4y(i)=veul(23,ii)
243 n5y(i)=veul(24,ii)
244 n6y(i)=veul(25,ii)
245 n1z(i)=veul(26,ii)
246 n2z(i)=veul(27,ii)
247 n3z(i)=veul(28,ii)
248 n4z(i)=veul(29,ii)
249 n5z(i)=veul(30,ii)
250 n6z(i)=veul(31,ii)
251 ENDDO
252 ENDIF
253
254 RETURN
255
type(alefvm_param_), target alefvm_param