48
49
50
51 USE elbufdef_mod
53 use element_mod , only : nixc
54
55
56
57#include "implicit_f.inc"
58#include "comlock.inc"
59
60
61
62#include "mvsiz_p.inc"
63#include "param_c.inc"
64#include "scr17_c.inc"
65#include "com08_c.inc"
66#include "impl1_c.inc"
67#include "scr14_c.inc"
68
69
70
71 INTEGER JFT,JLT,NNOD,NPLAT,IREP,NPT,NLAY,ISMSTR,ISROT,IPLYCXFEM,NEL,NPINCH
72 INTEGER IXC(NIXC,*),IPLAT(*),INOD(*)
73 parameter(nnod = 4)
74 my_real x(3,*), v(3,*), vr(3,*),pm(npropm,*),offg(*),off(*),
75 . vcore(mvsiz,3,nnod),vxyz(mvsiz,3,nnod),
area(*),vjfi(mvsiz,6,4),
76 . vqn(mvsiz,9,nnod),vqg(mvsiz,9,nnod),vq(mvsiz,3,3),rxyz(mvsiz,2,nnod),
77 . ll(*),vastn(mvsiz,4,nnod),vnrm(mvsiz,3,nnod),
78 . jac(mvsiz,4),hx(mvsiz,4),hy(mvsiz,4),veta(4,4),vksi(4,4),y24_t(*),
79 . x13_t(*),x24_t(*),y13_t(*),off_l, di(mvsiz,6),
80 . dir_a(nel,*),dir_b(nel,*),facn(mvsiz,2),
81 . zl1(mvsiz),r11(mvsiz),r12(mvsiz),r13(mvsiz),
82 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),r32(mvsiz),
83 . r33(mvsiz),rlz(mvsiz,4),thk(mvsiz),
84 . ux1(*),ux2(*),ux3(*),ux4(*),uy1(*),uy2(*),uy3(*),uy4(*),
85 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
86 . xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),
87 . xlcor(mvsiz,2,3)
88 double precision
89 . smstr(*)
90
91 TYPE(ELBUF_STRUCT_) :: ELBUF_STR
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133 INTEGER , II(6), J, K, L, M, I1, I2, I3, I4, EP, SPLAT
134 INTEGER NN(4),JPLAT(MVSIZ)
136 . xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4
138 . c1,c2,l13(mvsiz),l24(mvsiz),
139 . rr(3,nnod)
141 . tol,pg,j0,j1,j2,deta,corel(3,4),s1
143 . x13,x24,y13,mx13,mx23,mx34,my13,z1,z2,gama1,gama2,
144 . x21,x34,y21,y34,z21,z34,x41,x32,y41,y32,z41,z32,l12,l34,
145 . a_4,sl,sz2,sz,jmx13,jmy13,jmz13,j2myz,lm(mvsiz),y24,
146 . my23,my34,scal,g1x1,g1x3,g1y1,g1y3,g2x1,g2x2,g2y1,g2y2,
147 . ar(3),ad(nnod),btb(6),xx1,yy,zz,xy,xz1,yz,d(6),
148 . alr(3),ald(nnod),dbad(3),abc,xxyz2,zzxy2,yyxz2
150 . lxyz0(3),deta1(mvsiz),rx(mvsiz), ry(mvsiz), rz(mvsiz),
151 . sx(mvsiz),sy(mvsiz),
152 . area_i(mvsiz),ssz(mvsiz)
153
155 . vg13(3),vg24(3),vghi(3),v13(mvsiz,3),v24(mvsiz,3),vhi(mvsiz,3),
156 . faci,fac1,fac2,
157 . dt05,dt025,exz,eyz,ddrx,ddry,v13x,v24x,vhix,ddrz1,ddrz2,ddrz,
158 . vnx1, vny1, vnz1,vnx2,vny2,vnz2,vnx3,vny3,vnz3,vnx4,vny4,
160 DATA pg/.577350269189626/
161
162 DO i=1,6
163 ii(i) = nel*(i-1)
164 ENDDO
165
166 tol=em12
167 IF (isrot > 0 ) tol=em8
168
169 vksi(1,1)=-fourth*(one+pg)
170 vksi(2,1)=-vksi(1,1)
171 vksi(3,1)= fourth*(one-pg)
172 vksi(4,1)=-vksi(3,1)
173 veta(1,1)=-fourth*(one+pg)
174 veta(2,1)=-fourth*(one-pg)
175 veta(3,1)=-veta(2,1)
176 veta(4,1)=-veta(1,1)
177 vksi(1,2)= vksi(1,1)
178 vksi(2,2)=-vksi(1,2)
179 vksi(3,2)= vksi(3,1)
180 vksi(4,2)=-vksi(3,2)
181 veta(1,2)= veta(2,1)
182 veta(2,2)= veta(1,1)
183 veta(3,2)=-veta(2,2)
184 veta(4,2)=-veta(1,2)
185 vksi(1,3)=-vksi(3,1)
186 vksi(2,3)=-vksi(1,3)
187 vksi(3,3)=-vksi(1,1)
188 vksi(4,3)=-vksi(3,3)
189 veta(1,3)= veta(1,2)
190 veta(2,3)= veta(2,2)
191 veta(3,3)=-veta(2,3)
192 veta(4,3)=-veta(1,3)
193 vksi(1,4)= vksi(1,3)
194 vksi(2,4)=-vksi(1,4)
195 vksi(3,4)= vksi(3,3)
196 vksi(4,4)=-vksi(3,4)
197 veta(1,4)= veta(1,1)
198 veta(2,4)= veta(2,1)
199 veta(3,4)=-veta(2,4)
200 veta(4,4)=-veta(1,4)
201
202 DO i=jft,jlt
203 rx(i)=x(1,ixc(3,i))+x(1,ixc(4,i))-x(1,ixc(2,i))-x(1,ixc(5,i))
204 sx(i)=x(1,ixc(4,i))+x(1,ixc(5,i))-x(1,ixc(2,i))-x(1,ixc(3,i))
205 ry(i)=x(2,ixc(3,i))+x(2,ixc(4,i))-x(2,ixc(2,i))-x(2,ixc(5,i))
206 sy(i)=x(2,ixc(4,i))+x(2,ixc(5,i))-x(2,ixc(2,i))-x(2,ixc(3,i))
207 rz(i)=x(3,ixc(3,i))+x(3,ixc(4,i))-x(3,ixc(2,i))-x(3,ixc(5,i))
208 ssz(i)=x(3,ixc(4,i))+x(3,ixc(5,i))-x(3,ixc(2,i))-x(3,ixc(3,i))
209 ENDDO
210
211
212
213 k = 0
215 . rx, ry, rz,
216 . sx, sy, ssz,
217 . r11,r12,r13,r21,r22,r23,r31,r32,r33,deta1,offg )
218 DO i=jft,jlt
219 area(i)=fourth*deta1(i)
220 area_i(i)=one/
area(i)
221 vq(i,1,1)=r11(i)
222 vq(i,2,1)=r21(i)
223 vq(i,3,1)=r31(i)
224 vq(i,1,2)=r12(i)
225 vq(i,2,2)=r22(i)
226 vq(i,3,2)=r32(i)
227 vq(i,1,3)=r13(i)
228 vq(i,2,3)=r23(i)
229 vq(i,3,3)=r33(i)
230 ENDDO
231
232 DO i=jft,jlt
233
234 j=ixc(2,i)
235 k=ixc(3,i)
236 l=ixc(4,i)
237 m=ixc(5,i)
238
239 lxyz0(1)=fourth*(x(1,l)+x(1,m)+x(1,j)+x(1,k))
240 lxyz0(2)=fourth*(x(2,l)+x(2,m)+x(2,j)+x(2,k))
241 lxyz0(3)=fourth*(x(3,l)+x(3,m)+x(3,j)+x(3,k))
242
243 xx1=x(1,k)-x(1,j)
244 yy1=x(2,k)-x(2,j)
245 zz1=x(3,k)-x(3,j)
246
247 xl2(i)=r11(i)*xx1+r21(i)*yy1+r31(i)*zz1
248 yl2(i)=r12(i)*xx1+r22(i)*yy1+r32(i)*zz1
249
250 xx2=x(1,j)-lxyz0(1)
251 yy2=x(2,j)-lxyz0(2)
252 zz2=x(3,j)-lxyz0(3)
253 zl1(i)=r13(i)*xx2+r23(i)*yy2+r33(i)*zz2
254
255 xx3=x(1,l)-x(1,j)
256 yy3=x(2,l)-x(2,j)
257 zz3=x(3,l)-x(3,j)
258 xl3(i)=r11(i)*xx3+r21(i)*yy3+r31(i)*zz3
259 yl3(i)=r12(i)*xx3+r22(i)*yy3+r32(i)*zz3
260
261 xx4=x(1,m)-x(1,j)
262 yy4=x(2,m)-x(2,j)
263 zz4=x(3,m)-x(3,j)
264 xl4(i)=r11(i)*xx4+r21(i)*yy4+r31(i)*zz4
265 yl4(i)=r12(i)*xx4+r22(i)*yy4+r32(i)*zz4
266 ENDDO
267
268
269
270 IF(ismstr==10)THEN
271 DO i=jft,jlt
272 xlcor(i,1,1)=xl2(i)
273 xlcor(i,2,1)=yl2(i)
274 xlcor(i,1,2)=xl3(i)
275 xlcor(i,2,2)=yl3(i)
276 xlcor(i,1,3)=xl4(i)
277 xlcor(i,2,3)=yl4(i)
278 ENDDO
279 ELSEIF(ismstr==11)THEN
280 DO i=jft,jlt
281 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
282 ux1(i) = zero
283 uy1(i) = zero
284 ux2(i) = zero
285 uy2(i) = zero
286 ux3(i) = zero
287 uy3(i) = zero
288 ux4(i) = zero
289 uy4(i) = zero
290 IF(abs(offg(i))==two)THEN
291 ux2(i) = xl2(i)-smstr(ii(1)+i)
292 uy2(i) = yl2(i)-smstr(ii(2)+i)
293 ux3(i) = xl3(i)-smstr(ii(3)+i)
294 uy3(i) = yl3(i)-smstr(ii(4)+i)
295 ux4(i) = xl4(i)-smstr(ii(5)+i)
296 uy4(i) = yl4(i)-smstr(ii(6)+i)
297 xl2(i) = smstr(ii(1)+i)
298 yl2(i) = smstr(ii(2)+i)
299 xl3(i) = smstr(ii(3)+i)
300 yl3(i) = smstr(ii(4)+i)
301 xl4(i) = smstr(ii(5)+i)
302 yl4(i) = smstr(ii(6)+i)
303 zl1(i) = zero
304 area(i)=half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
305 area_i(i)=one/
max(em20,
area(i))
306 ELSE
307 smstr(ii(1)+i)=xl2(i)
308 smstr(ii(2)+i)=yl2(i)
309 smstr(ii(3)+i)=xl3(i)
310 smstr(ii(4)+i)=yl3(i)
311 smstr(ii(5)+i)=xl4(i)
312 smstr(ii(6)+i)=yl4(i)
313 ENDIF
314 ENDDO
315 ELSEIF(ismstr==1.OR.ismstr==2)THEN
316 DO i=jft,jlt
317 IF(abs(offg(i))==two)THEN
318 xl2(i)=smstr(ii(1)+i)
319 yl2(i)=smstr(ii(2)+i)
320 xl3(i)=smstr(ii(3)+i)
321 yl3(i)=smstr(ii(4)+i)
322 xl4(i)=smstr(ii(5)+i)
323 yl4(i)=smstr(ii(6)+i)
324 zl1(i)=zero
325 area(i)=half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
326 area_i(i)=one/
max(em20,
area(i))
327 ELSE
328 smstr(ii(1)+i)=xl2(i)
329 smstr(ii(2)+i)=yl2(i)
330 smstr(ii(3)+i)=xl3(i)
331 smstr(ii(4)+i)=yl3(i)
332 smstr(ii(5)+i)=xl4(i)
333 smstr(ii
334 ENDIF
335 ENDDO
336 ENDIF
337 IF(ismstr==1)THEN
338 DO i=jft,jlt
339 IF(offg(i)==one)offg(i)=two
340 ENDDO
341 ENDIF
342
343
344
345 CALL cortdir3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
346 . nlay ,irep ,rx ,ry ,rz ,
347 . sx ,sy ,ssz ,r11 ,r21 ,
348 . r31 ,r12 ,r22 ,r32 ,nel )
349
350 DO ep=jft,jlt
351 lxyz0(1)=fourth*(xl2(ep)+xl3(ep)+xl4(ep))
352 lxyz0(2)=fourth*(yl2(ep)+yl3(ep)+yl4(ep))
353 vcore(ep,1,1)=-lxyz0(1)
354 vcore(ep,1,2)=xl2(ep)-lxyz0(1)
355 vcore(ep,1,3)=xl3(ep)-lxyz0(1)
356 vcore(ep,1,4)=xl4(ep)-lxyz0(1)
357 vcore(ep,2,1)=-lxyz0(2)
358 vcore(ep,2,2)=yl2(ep)-lxyz0(2)
359 vcore(ep,2,3)=yl3(ep)-lxyz0(2)
360 vcore(ep,2,4)=yl4(ep)-lxyz0(2)
361
362 x13_t(ep) =(vcore(ep,1,1)-vcore(ep,1,3))*half
363 x24_t(ep) =(vcore(ep,1,2)-vcore(ep,1,4))*half
364 y13_t(ep) =(vcore(ep,2,1)-vcore(ep,2,3))*half
365 y24_t(ep) =(vcore(ep,2,2)-vcore(ep,2,4))*half
366 l13(ep)=x13_t(ep)*x13_t(ep)+y13_t(ep)*y13_t(ep)
367 l24(ep)=x24_t(ep)*x24_t(ep)+y24_t(ep)*y24_t(ep)
368 ll(ep)=
max(l13(ep),l24(ep))
369 c1 =vcore(ep,1,2)*vcore(ep,2,4)-vcore(ep,2,2)*vcore(ep,1,4)
370 c2 =vcore(ep,1,1)*vcore(ep,2,3)-vcore(ep,2,1)*vcore(ep,1,3)
371 lm(ep) =
max(abs(c1),abs(c2))
372 ENDDO
373
374 DO ep=jft,jlt
375
376 nn(1)=ixc(2,ep)
377 nn(2)=ixc(3,ep)
378 nn(3)=ixc(4,ep)
379 nn(4)=ixc(5,ep)
380
381 vl1(ep,1)=v(1,nn(1))
382 vl1(ep,2)=v(2,nn(1))
383 vl1(ep,3)=v(3,nn(1))
384 vl2(ep,1)=v(1,nn(2))
385 vl2(ep,2)=v(2,nn(2))
386 vl2(ep,3)=v(3,nn(2))
387 vl3(ep,1)=v(1,nn(3))
388 vl3(ep,2)=v(2,nn(3))
389 vl3(ep,3)=v(3,nn(3))
390 vl4(ep,1)=v(1,nn(4))
391 vl4(ep,2)=v(2,nn(4))
392 vl4(ep,3)=v(3,nn(4))
393
394 vg13(1)=vl1(ep,1)-vl3(ep,1)
395 vg24(1)=vl2(ep,1)-vl4(ep,1)
396 vghi(1)=vl1(ep,1)-vl2(ep,1)+vl3(ep,1)-vl4(ep,1)
397
398 vg13(2)=vl1(ep,2)-vl3(ep,2)
399 vg24(2)=vl2(ep,2)-vl4(ep,2)
400 vghi(2)=vl1(ep,2)-vl2(ep,2)+vl3(ep,2)-vl4(ep,2)
401
402 vg13(3)=vl1(ep,3)-vl3(ep,3)
403 vg24(3)=vl2(ep,3)-vl4(ep,3)
404 vghi(3)=vl1(ep,3)-vl2(ep,3)+vl3(ep,3)-vl4(ep,3)
405
406 v13(ep,1)=(vq(ep,1,1)*vg13(1)+vq(ep,2,1)*vg13(2)+vq(ep,3,1)*vg13(3))
407 v24(ep,1)=(vq(ep,1,1)*vg24(1)+vq(ep,2,1)*vg24(2)+vq(ep,3,1)*vg24(3))
408 vhi(ep,1)=(vq(ep,1,1)*vghi(1)+vq(ep,2,1)*vghi(2)+vq(ep,3,1)*vghi(3))
409 v13(ep,2)=(vq(ep,1,2)*vg13(1)+vq(ep,2,2)*vg13(2)+vq(ep,3,2)*vg13(3))
410 v24(ep,2)=(vq(ep,1,2)*vg24(1)+vq(ep,2,2)*vg24(2)+vq(ep,3,2)*vg24(3))
411 vhi(ep,2)=(vq(ep,1,2)*vghi(1)+vq(ep,2,2)*vghi(2)+vq(ep,3,2)*vghi(3))
412 v13(ep,3)=(vq(ep,1,3)*vg13(1)+vq(ep,2,3)*vg13(2)+vq(ep,3,3)*vg13(3))
413 v24(ep,3)=(vq(ep,1,3)*vg24(1)+vq(ep,2,3)*vg24(2)+vq(ep,3,3)*vg24(3))
414 vhi(ep,3)=(vq(ep,1,3)*vghi(1)+vq(ep,2,3)*vghi(2)+vq(ep,3,3)*vghi(3))
415 ENDDO
416
417 IF (impl_s==0.OR.imp_lr>0) THEN
418 dt05 = half*dt1
419 dt025 =fourth*dt1
420 DO i=jft,jlt
421 exz = y24_t(i)*v13(i,3)-y13_t(i)*v24(i,3)
422 eyz = -x24_t(i)*v13(i,3)+x13_t(i)*v24(i,3)
423 ddry=dt05*exz*area_i(i)
424 ddrx=dt05*eyz*area_i(i)
425 v13x = v13(i,1)
426 v24x = v24(i,1)
427 vhix = vhi(i,1)
428 ddrz1=dt025*(v13(i,2)-v24(i,2))/(x13_t(i)-x24_t(i))
429 IF (abs(x13_t(i)-x24_t(i))<em10) ddrz1 = zero
430 v13(i,1) = v13(i,1)-ddry*v13(i,3)-ddrz1*v13(i,2)
431 v24(i,1) = v24(i,1)-ddry*v24(i,3)-ddrz1*v24(i,2)
432 vhi(i,1) = vhi(i,1)-ddry*vhi(i,3)-ddrz1*vhi(i,2)
433 ddrz2=dt025*(v13x+v24x)/(y13_t(i)+y24_t(i))
434 IF (abs(y13_t(i)+y24_t(i))<em10) ddrz2 = zero
435 v13(i,2) = v13(i,2)-ddrx*v13(i,3)-ddrz2*v13x
436 v24(i,2) = v24(i,2)-ddrx*v24(i,3)-ddrz2*v24x
437 vhi(i,2) = vhi(i,2)-ddrx*vhi(i,3)-ddrz2*vhix
438 ENDDO
439 ENDIF
440 nplat=jft-1
441 splat= 0
442
443
444 DO ep=jft,jlt
445 z2=zl1(ep)*zl1(ep)
446 IF ((z2<tol*ll(ep).OR.npt==1).AND.npinch==0) THEN
447 nplat=nplat+1
448 iplat(nplat)=ep
449 ELSE
450 splat=splat+1
451 jplat(splat)=ep
452 ENDIF
453 ENDDO
454 DO ep=nplat+1,jlt
455 iplat(ep)=jplat(ep-nplat)
456 ENDDO
457#include "vectorize.inc"
458 DO i=jft,nplat
459 ep =iplat(i)
460 x13 =x13_t(ep)
461 x24 =x24_t(ep)
462 y13 =y13_t(ep)
463 y24 =y24_t(ep)
464
465 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
466 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
467 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
468 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
469 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
470 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
471 x13_t(ep) =x13*area_i(ep)
472 x24_t(ep) =x24*area_i(ep)
473 y13_t(ep) =y13*area_i(ep)
474 y24_t(ep) =y24*area_i(ep)
475
476 gama1=-mx13*y24+my13*x24
477 gama2= mx13*y13-my13*x13
478 z2=zl1(ep)*zl1(ep)
479 nn(1)=ixc(2,ep)
480 nn(2)=ixc(3,ep)
481 nn(3)=ixc(4,ep)
482 nn(4)=ixc(5,ep)
483
484 rr(1,1) =vq(ep,1,1)*vr(1,nn(1))+vq(ep,2,1)*vr(2,nn(1))+vq(ep,3,1)*vr(3,nn(1))
485 rr(1,2) =vq(ep,1,1)*vr(1,nn(2))+vq(ep,2,1)*vr(2,nn(2))+vq(ep,3,1)*vr(3,nn(2))
486 rr(1,3) =vq(ep,1,1)*vr(1,nn(3))+vq(ep,2,1)*vr(2,nn(3))+vq(ep,3,1)*vr(3,nn(3))
487 rr(1,4) =vq(ep,1,1)*vr(1,nn(4))+vq(ep,2,1)*vr(2,nn(4))+vq(ep,3,1)*vr(3,nn(4))
488 rr(2,1) =vq(ep,1,2)*vr(1,nn(1))+vq(ep,2,2)*vr(2,nn(1))+vq(ep,3,2)*vr(3,nn(1))
489 rr(2,2) =vq(ep,1,2)*vr(1,nn(2))+vq(ep,2,2)*vr(2,nn(2))+vq(ep,3,2)*vr(3,nn(2))
490 rr(2,3) =vq(ep,1,2)*vr(1,nn(3))+vq(ep,2,2)*vr(2,nn(3))+vq(ep,3,2)*vr(3,nn(3))
491 rr(2,4) =vq(ep,1,2)*vr(1,nn(4))+vq(ep,2,2)*vr(2,nn(4))+vq(ep,3,2)*vr(3,nn(4))
492
493 vxyz(ep,1,1)=v13(ep,1)
494 vxyz(ep,2,1)=v13(ep,2)
495 vxyz(ep,3,1)=v13(ep,3)
496
497 vxyz(ep,1,2)=v24(ep,1)
498 vxyz(ep,2,2)=v24(ep,2)
499 vxyz(ep,3,2)=v24(ep,3)
500
501 vxyz(ep,1,3)=vhi(ep,1)
502 vxyz(ep,2,3)=vhi(ep,2)
503 vxyz(ep,3,3)=vhi(ep,3)
504
505 rxyz(ep,1,1)=rr(1,1)-rr(1,3)
506 rxyz(ep,2,1)=rr(2,1)-rr(2,3)
507 rxyz(ep,1,2)=rr(1,2)-rr(1,4)
508 rxyz(ep,2,2)=rr(2,2)-rr(2,4)
509 rxyz(ep,1,3)=rr(1,1)-rr(1,2)+rr(1,3)-rr(1,4)
510 rxyz(ep,2,3)=rr(2,1)-rr(2,2)+rr(2,3)-rr(2,4)
511 rxyz(ep,1,4)=rr(1,1)+rr(1,2)+rr(1,3)+rr(1,4)
512 rxyz(ep,2,4)=rr(2,1)+rr(2,2)+rr(2,3)+rr(2,4)
513
514
515 vcore(ep,1,1)=y24_t(ep)
516 vcore(ep,2,1)=-y13_t(ep)
517 vcore(ep,3,1)=-x24_t(ep)
518 vcore(ep,1,2)= x13_t(ep)
519 vcore(ep,2,2)=gama1*area_i(ep)
520 vcore(ep,3,2)=gama2*area_i(ep)
521 vcore(ep,1,3)=mx23
522 vcore(ep,2,3)=my23
523 vcore(ep,3,3)=mx34
524 vcore(ep,1,4)=my34
525 vcore(ep,2,4)=mx13
526 vcore(ep,3,4)=my13
527
528 j1=(mx23*my13-mx13*my23)*pg
529 j2=-(mx13*my34-mx34*my13)*pg
531
532 jac(ep,1)=abs(j0+j2-j1)
533 jac(ep,2)=abs(j0+j2+j1)
534 jac(ep,3)=abs(j0-j2+j1)
535 jac(ep,4)=abs(j0-j2-j1)
536 j1=(my23-my34)*pg
537 j2=-(my23+my34)*pg
538 hx(ep,1)=j1/jac(ep,1)
539 hx(ep,2)=j2/jac(ep,2)
540 hx(ep,3)=-j1/jac(ep,3)
541 hx(ep,4)=-j2/jac(ep,4)
542 j1=(mx34-mx23)*pg
543 j2=(mx34+mx23)*pg
544 hy(ep,1)=j1/jac(ep,1)
545 hy(ep,2)=j2/jac(ep,2)
546 hy(ep,3)=-j1/jac(ep,3)
547 hy(ep,4)=-j2/jac(ep,4)
548
549 ENDDO
550#include "vectorize.inc"
551 DO i=nplat+1,jlt
552 ep =iplat(i)
553 z1=zl1(ep)
554 z2=z1*z1
555 vcore(ep,3,1)=z1
556 vcore(ep,3,2)=-z1
557 vcore(ep,3,3)=z1
558 vcore(ep,3,4)=-z1
559 corel(1,1)=vcore(ep,1,1)
560 corel(1,2)=vcore(ep,1,2)
561 corel(1,3)=vcore(ep,1,3)
562 corel(1,4)=vcore(ep,1,4)
563 corel(2,1)=vcore(ep,2,1)
564 corel(2,2)=vcore(ep,2,2)
565 corel(2,3)=vcore(ep,2,3)
566 corel(2,4)=vcore(ep,2,4)
567 x13 =x13_t(ep)
568 x24 =x24_t(ep)
569 y13 =y13_t(ep)
570 y24 =y24_t(ep)
571
572 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
573 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
574 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
575 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
576 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
577 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
578 x13_t(ep) =x13*area_i(ep)
579 x24_t(ep) =x24*area_i(ep)
580 y13_t(ep) =y13*area_i(ep)
581 y24_t(ep) =y24*area_i(ep)
582
583 gama1=-mx13*y24+my13*x24
584 gama2= mx13*y13-my13*x13
585 nn(1)=ixc(2,ep)
586 nn(2)=ixc(3,ep)
587 nn(3)=ixc(4,ep)
588 nn(4)=ixc(5,ep)
589
590
591
592
593
594
595
596
597
598 x21 =mx23-mx13
599 x34 =(corel(1,3)-corel(1,4))*half
600 y21 =my23-my13
601 y34 =(corel(2,3)-corel(2,4))*half
602 z21 = -z1
603 z34 = z1
604 l12 = sqrt(x21*x21+y21*y21+z2)
605 l34 = sqrt(x34*x34+y34*y34+z2)
606
607
608
609 x41 =mx34-mx13
610 x32 =(corel(1,3)-corel(1,2))*half
611 y41 =my34-my13
612 y32 =(corel(2,3)-corel(2,2))*half
613 z41 = -z1
614 z32 = z1
615
616
617
619
621 vqn(ep,1,1)=x21*sl
622 vqn(ep,2,1)=y21*sl
623 vqn(ep,3,1)=z21*sl
624 sz2=a_4-gama1
625 sz=z2*l24(ep)
626 sl=one/sqrt(sz+sz2*sz2)
627 vqn(ep,7,1)=-z1*y24
628 vqn(ep,8,1)= z1*x24
629 vqn(ep,9,1)= sz2*sl
630
631 vqn(ep,7,3)=-vqn(ep,7,1)
632 vqn(ep,8,3)=-vqn(ep,8,1)
633 vqn(ep,7,1)= vqn(ep,7,1)*sl
634 vqn(ep,8,1)= vqn(ep,8,1)*sl
635
636 vqn(ep,4,1)= vqn(ep,8,1)*vqn(ep,3,1)-vqn(ep,9,1)*vqn(ep,2,1)
637 vqn(ep,5,1)= vqn(ep,9,1)*vqn(ep,1,1)-vqn(ep,7,1)*vqn(ep,3,1)
638 vqn(ep,6,1)= vqn(ep,7,1)*vqn(ep,2,1)-vqn(ep,8,1)*vqn(ep,1,1)
639
641 vqn(ep,1,3)=x34*sl
642 vqn(ep,2,3)=y34*sl
643 vqn(ep,3,3)=z34*sl
644 sz2=a_4+gama1
645 sl=one/sqrt(sz+sz2*sz2)
646 vqn(ep,7,3)= vqn(ep,7,3)*sl
647 vqn(ep,8,3)= vqn(ep,8,3)*sl
648 vqn(ep,9,3)= sz2*sl
649
650 vqn(ep,4,3)= vqn(ep,8,3)*vqn(ep,3,3)-vqn(ep,9,3)*vqn(ep,2,3)
651 vqn(ep,5,3)= vqn(ep,9,3)*vqn(ep,1,3)-vqn(ep,7,3)*vqn(ep,3,3)
652 vqn(ep,6,3)= vqn(ep,7,3)*vqn(ep,2,3)-vqn(ep,8,3)*vqn(ep,1,3)
653
654 vqn(ep,1,2)=vqn(ep,1,1)
655 vqn(ep,2,2)=vqn(ep,2,1)
656 vqn(ep,3,2)=vqn(ep,3,1)
657 sz2=a_4+gama2
658 sz=z2*l13(ep)
659 sl=one/sqrt(sz+sz2*sz2)
660 vqn(ep,7,2)=-z1*y13
661 vqn(ep,8,2)= z1*x13
662 vqn(ep,9,2)= sz2*sl
663 vqn(ep,7,4)=-vqn(ep,7,2)
664 vqn(ep,8,4)=-vqn(ep,8,2)
665 vqn(ep,7,2)= vqn(ep,7,2)*sl
666 vqn(ep,8,2)= vqn(ep,8,2)*sl
667
668 vqn(ep,4,2)= vqn(ep,8,2)*vqn(ep,3,2)-vqn(ep,9,2)*vqn(ep,2,2)
669 vqn(ep,5,2)= vqn(ep,9,2)*vqn(ep,1,2)-vqn(ep,7,2)*vqn(ep,3,2)
670 vqn(ep,6,2)= vqn(ep,7,2)*vqn(ep,2,2)-vqn(ep,8,2)*vqn(ep,1,2)
671
672 vqn(ep,1,4)=vqn(ep,1,3)
673 vqn(ep,2,4)=vqn(ep,2,3)
674 vqn(ep,3,4)=vqn(ep,3,3)
675 sz2=a_4-gama2
676 sl=one/sqrt(sz+sz2*sz2)
677 vqn(ep,7,4)= vqn(ep,7,4)*sl
678 vqn(ep,8,4)= vqn(ep,8,4)*sl
679 vqn(ep,9,4)= sz2*sl
680
681 vqn(ep,4,4)= vqn(ep,8,4)*vqn(ep,3,4)-vqn(ep,9,4)*vqn(ep,2,4)
682 vqn(ep,5,4)= vqn(ep,9,4)*vqn(ep,1,4)-vqn(ep,7,4)*vqn(ep,3,4)
683 vqn(ep,6,4)= vqn(ep,7,4)*vqn(ep,2,4)-vqn(ep,8,4)*vqn(ep,1,4)
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716 vnrm(ep,1,1)=vqn(ep,7,1)+vqn(ep,7,2)
717 vnrm(ep,2,1)=vqn(ep,8,1)+vqn(ep,8,2)
718 vnrm(ep,3,1)=vqn(ep,9,1)+vqn(ep,9,2)
719 c1=sqrt(vnrm(ep,1,1)*vnrm(ep,1,1)+vnrm(ep,2,1)*vnrm(ep,2,1)+vnrm(ep,3,1)*vnrm(ep,3,1))
721 vnrm(ep,1,1)=vnrm(ep,1,1)/c1
722 vnrm(ep,2,1)=vnrm(ep,2,1)/c1
723 vnrm(ep,3,1)=vnrm(ep,3,1)/c1
724 vastn(ep,1,1)=zero
725 vastn(ep,2,1)=l12
726 vastn(ep,3,1)=vastn(ep,1,1)
727 vastn(ep,4,1)=vastn(ep,2,1)
728
729 vnrm(ep,1,2)=vqn(ep,7,4)+vqn(ep,7,3)
730 vnrm(ep,2,2)=vqn(ep,8,4)+vqn(ep,8,3)
731 vnrm(ep,3,2)=vqn(ep,9,4)+vqn(ep,9,3)
732 c1=sqrt(vnrm(ep,1,2)*vnrm(ep,1,2)+vnrm(ep,2,2)*vnrm(ep,2,2)+vnrm(ep,3,2)*vnrm(ep,3,2))
734 vnrm(ep,1,2)=vnrm(ep,1,2)/c1
735 vnrm(ep,2,2)=vnrm(ep,2,2)/c1
736 vnrm(ep,3,2)=vnrm(ep,3,2)/c1
737 vastn(ep,1,2)=zero
738 vastn(ep,2,2)=l34
739 vastn(ep,3,2)=vastn(ep,1,2)
740 vastn(ep,4,2)=vastn(ep,2,2)
741
742 vnrm(ep,1,3)=vqn(ep,7,1)+vqn(ep,7,4)
743 vnrm(ep,2,3)=vqn(ep,8,1)+vqn(ep,8,4)
744 vnrm(ep,3,3)=vqn(ep,9,1)+vqn(ep,9,4)
745 c1=sqrt(vnrm(ep,1,3)*vnrm(ep,1,3)+vnrm(ep,2,3)*vnrm(ep,2,3)+vnrm(ep,3,3)*vnrm(ep,3,3))
747 vnrm(ep,1,3)=vnrm(ep,1,3)/c1
748 vnrm(ep,2,3)=vnrm(ep,2,3)/c1
749 vnrm(ep,3,3)=vnrm(ep,3,3)/c1
750 vastn(ep,1,3)=-(x41*vqn(ep,4,1)+y41*vqn(ep,5,1)+z41*vqn(ep,6,1))
751 vastn(ep,2,3)= x41*vqn(ep,1,1)+y41*vqn(ep,2,1)+z41*vqn(ep,3,1)
752 vastn(ep,3,3)=-(x41*vqn(ep,4,4)+y41*vqn(ep,5,4)+z41*vqn(ep,6,4))
753 vastn(ep,4,3)= x41*vqn(ep,1,4)+y41*vqn(ep,2,4)+z41*vqn(ep,3,4)
754
755 vnrm(ep,1,4)=vqn(ep,7,2)+vqn(ep,7,3)
756 vnrm(ep,2,4)=vqn(ep,8,2)+vqn(ep,8,3)
757 vnrm(ep,3,4)=vqn(ep,9,2)+vqn(ep,9,3)
758 c1=sqrt(vnrm(ep,1,4)*vnrm(ep,1,4)+vnrm(ep,2,4)*vnrm(ep,2,4)+vnrm(ep,3,4)*vnrm(ep,3,4))
760 vnrm(ep,1,4)=vnrm(ep,1,4)/c1
761 vnrm(ep,2,4)=vnrm(ep,2,4)/c1
762 vnrm(ep,3,4)=vnrm(ep,3,4)/c1
763 vastn(ep,1,4)=-(x32*vqn(ep,4,2)+y32*vqn(ep,5,2)+z32*vqn(ep,6,2))
764 vastn(ep,2,4)= x32*vqn(ep,1,2)+y32*vqn(ep,2,2)+z32*vqn(ep,3,2)
765 vastn(ep,3,4)=-(x32*vqn(ep,4,3)+y32*vqn(ep,5,3)+z32*vqn(ep,6,3))
766 vastn(ep,4,4)= x32*vqn(ep,1,3)+y32*vqn(ep,2,3)+z32*vqn(ep,3,3)
767
768
769
770 a_4=a_4/pg
771 jmx13=mx13*pg
772 jmy13=my13*pg
773 jmz13=z1*pg
774 j2myz=jmz13*jmz13
775
776 sz2=a_4-gama1
777 sz=z2*l24(ep)
778 sl=sqrt(sz+sz2*sz2)
779 jac(ep,1)=sl*pg
781 vqg(ep,7,1)=-z1*y24
782 vqg(ep,8,1)= z1*x24
783 vqg(ep,9,1)= sz2*sl
784 vqg(ep,7,3)=-vqg(ep,7,1)
785 vqg(ep,8,3)=-vqg(ep,8,1)
786 vqg(ep,7,1)= vqg(ep,7,1)*sl
787 vqg(ep,8,1)= vqg(ep,8,1)*sl
788
789 g1x1=mx23-jmx13
790 g1y1=my23-jmy13
791 c1 = sqrt(g1x1*g1x1 + g1y1*g1y1 +j2myz )
792 g2x1=mx34-jmx13
793 g2y1=my34-jmy13
794 c2 = sqrt(g2x1*g2x1 + g2y1*g2y1 +j2myz)
795 vjfi(ep,1,1)=(g2y1*vqg(ep,9,1)+jmz13*vqg(ep,8,1))
796 vjfi(ep,2,1)=(-jmz13*vqg(ep,7,1)-g2x1*vqg(ep,9,1))
797 vjfi(ep,3,1)=(g2x1*vqg(ep,8,1)-g2y1*vqg(ep,7,1))
798 vqg(ep,1,1)= g1x1*c2+vjfi(ep,1,1)*c1
799 vqg(ep,2,1)= g1y1*c2+vjfi(ep,2,1)*c1
800 vqg(ep,3,1)= -jmz13*c2+vjfi(ep,3,1)*c1
801 sl=sl/pg
802 vjfi(ep,1,1)=vjfi(ep,1,1)*sl
803 vjfi(ep,2,1)=vjfi(ep,2,1)*sl
804 vjfi(ep,3,1)=vjfi(ep,3,1)*sl
805
806 vjfi(ep,4,1)=(-jmz13*vqg(ep,8,1)-g1y1*vqg(ep,9,1))*sl
807 vjfi(ep,5,1)=(g1x1*vqg(ep,9,1)+jmz13*vqg(ep,7,1))*sl
808 vjfi(ep,6,1)=(g1y1*vqg(ep,7,1)-g1x1*vqg(ep,8,1))*sl
809
810 sl = sqrt(vqg(ep,1,1)*vqg(ep,1,1) + vqg(ep,2,1)*vqg(ep,2,1) + vqg(ep,3,1)*vqg(ep,3,1))
811 IF ( sl/=zero) sl = one / sl
812 vqg(ep,1,1) = vqg(ep,1,1)*sl
813 vqg(ep,2,1) = vqg(ep,2,1)*sl
814 vqg(ep,3,1) = vqg(ep,3,1)*sl
815
816 vqg(ep,4,1)= vqg(ep,8,1)*vqg(ep,3,1)-vqg(ep,9,1)*vqg(ep,2,1)
817 vqg(ep,5,1)= vqg(ep,9,1)*vqg(ep,1,1)-vqg(ep,7,1)*vqg(ep,3,1)
818 vqg(ep,6,1)= vqg(ep,7,1)*vqg(ep,2,1)-vqg(ep,8,1)*vqg(ep,1,1)
819
820 sz2=a_4+gama1
821 sl=sqrt(sz+sz2*sz2)
822 jac(ep,3)=sl*pg
824 vqg(ep,7,3)= vqg(ep,7,3)*sl
825 vqg(ep,8,3)= vqg(ep,8,3)*sl
826 vqg(ep,9,3)= sz2*sl
827
828 g1x3=mx23+jmx13
829 g1y3=my23+jmy13
830 j1 = sqrt(g1x3*g1x3 + g1y3*g1y3 +j2myz )
831
832 g2x2=mx34+jmx13
833 g2y2=my34+jmy13
834 j2 = sqrt(g2x2*g2x2 + g2y2*g2y2 +j2myz)
835 vjfi(ep,1,3)=(g2y2*vqg(ep,9,3)-jmz13*vqg(ep,8,3))
836 vjfi(ep,2,3)=(jmz13*vqg(ep,7,3)-g2x2*vqg(ep,9,3))
837 vjfi(ep,3,3)=(g2x2*vqg(ep,8,3)-g2y2*vqg(ep,7,3))
838 vqg(ep,1,3)= g1x3*j2+vjfi(ep,1,3)*j1
839 vqg(ep,2,3)= g1y3*j2+vjfi(ep,2,3)*j1
840 vqg(ep,3,3)= jmz13*j2+vjfi(ep,3,3)*j1
841 sl=sl/pg
842 vjfi(ep,1,3)=vjfi(ep,1,3)*sl
843 vjfi(ep,2,3)=vjfi(ep,2,3)*sl
844 vjfi(ep,3,3)=vjfi(ep,3,3)*sl
845
846 vjfi(ep,4,3)=(jmz13*vqg(ep,8,3)-g1y3*vqg(ep,9,3))*sl
847 vjfi(ep,5,3)=(g1x3*vqg(ep,9,3)-jmz13*vqg(ep,7,3))*sl
848 vjfi(ep,6,3)=(g1y3*vqg(ep,7,3)-g1x3*vqg(ep,8,3))*sl
849
850 sl = sqrt(vqg(ep,1,3)*vqg(ep,1,3) + vqg(ep,2,3)*vqg(ep,2,3) + vqg(ep,3,3)*vqg(ep,3,3))
851 IF ( sl/=zero) sl = one / sl
852 vqg(ep,1,3) = vqg(ep,1,3)*sl
853 vqg(ep,2,3) = vqg(ep,2,3)*sl
854 vqg(ep,3,3) = vqg(ep,3,3)*sl
855
856 vqg(ep,4,3)= vqg(ep,8,3)*vqg(ep,3,3)-vqg(ep,9,3)*vqg(ep,2,3)
857 vqg(ep,5,3)= vqg(ep,9,3)*vqg(ep,1,3)-vqg(ep,7,3)*vqg(ep,3,3)
858 vqg(ep,6,3)= vqg(ep,7,3)*vqg(ep,2,3)-vqg(ep,8,3)*vqg(ep,1,3)
859
860 sz2=a_4+gama2
861 sz=z2*l13(ep)
862 sl=sqrt(sz+sz2*sz2)
863 jac(ep,2)=sl*pg
865 vqg(ep,7,2)=-z1*y13
866 vqg(ep,8,2)= z1*x13
867 vqg(ep,9,2)= sz2*sl
868 vqg(ep,7,4)=-vqg(ep,7,2)
869 vqg(ep,8,4)=-vqg(ep,8,2)
870 vqg(ep,7,2)= vqg(ep,7,2)*sl
871 vqg(ep,8,2)= vqg(ep,8,2)*sl
872
873 vjfi(ep,1,2)=(g2y2*vqg(ep,9,2)-jmz13*vqg(ep,8,2))
874 vjfi(ep,2,2)=(jmz13*vqg(ep,7,2)-g2x2*vqg(ep,9,2))
875 vjfi(ep,3,2)=(g2x2*vqg(ep,8,2)-g2y2*vqg(ep,7,2))
876 vqg(ep,1,2)= g1x1*j2+vjfi(ep,1,2)*c1
877 vqg(ep,2,2)= g1y1*j2+vjfi(ep,2,2)*c1
878 vqg(ep,3,2)=-jmz13*j2+vjfi(ep,3,2)*c1
879 sl=sl/pg
880 vjfi(ep,1,2)=vjfi(ep,1,2)*sl
881 vjfi(ep,2,2)=vjfi(ep,2,2)*sl
882 vjfi(ep,3,2)=vjfi(ep,3,2)*sl
883
884 vjfi(ep,4,2)=(-jmz13*vqg(ep,8,2)-g1y1*vqg(ep,9,2))*sl
885 vjfi(ep,5,2)=(g1x1*vqg(ep,9,2)+jmz13*vqg(ep,7,2))*sl
886 vjfi(ep,6,2)=(g1y1*vqg(ep,7,2)-g1x1*vqg(ep,8,2))*sl
887
888 sl = sqrt(vqg(ep,1,2)*vqg(ep,1,2) + vqg(ep,2,2)*vqg(ep,2,2) + vqg(ep,3,2)*vqg(ep,3,2))
889 IF ( sl/=zero) sl = one / sl
890 vqg(ep,1,2) = vqg(ep,1,2)*sl
891 vqg(ep,2,2) = vqg(ep,2,2)*sl
892 vqg(ep,3,2) = vqg(ep,3,2)*sl
893 vqg(ep,4,2)= vqg(ep,8,2)*vqg(ep,3,2)-vqg(ep,9,2)*vqg(ep,2,2)
894 vqg(ep,5,2)= vqg(ep,9,2)*vqg(ep,1,2)-vqg(ep,7,2)*vqg(ep,3,2)
895 vqg(ep,6,2)= vqg(ep,7,2)*vqg(ep,2,2)-vqg(ep,8,2)*vqg(ep,1,2)
896
897 sz2=a_4-gama2
898 sl=sqrt(sz+sz2*sz2)
899 jac(ep,4)=sl*pg
901 vqg(ep,7,4)= vqg(ep,7,4)*sl
902 vqg(ep,8,4)= vqg(ep,8,4)*sl
903 vqg(ep,9,4)= sz2*sl
904
905 vjfi(ep,1,4)=(g2y1*vqg(ep,9,4)+jmz13*vqg(ep,8,4))
906 vjfi(ep,2,4)=(-jmz13*vqg(ep,7,4)-g2x1*vqg(ep,9,4))
907 vjfi(ep,3,4)=(g2x1*vqg(ep,8,4)-g2y1*vqg(ep,7,4))
908 vqg(ep,1,4)= g1x3*c2+vjfi(ep,1,4)*j1
909 vqg(ep,2,4)= g1y3*c2+vjfi(ep,2,4)*j1
910 vqg(ep,3,4)=jmz13*c2+vjfi(ep,3,4)*j1
911 sl=sl/pg
912 vjfi(ep,1,4)=vjfi(ep,1,4)*sl
913 vjfi(ep,2,4)=vjfi(ep,2,4)*sl
914 vjfi(ep,3,4)=vjfi(ep,3,4)*sl
915
916 vjfi(ep,4,4)=(jmz13*vqg(ep,8,4)-g1y3*vqg(ep,9,4))*sl
917 vjfi(ep,5,4)=(g1x3*vqg(ep,9,4)-jmz13*vqg(ep,7,4))*sl
918 vjfi(ep,6,4)=(g1y3*vqg(ep,7,4)-g1x3*vqg(ep,8,4))*sl
919
920 sl = sqrt(vqg(ep,1,4)*vqg(ep,1,4) + vqg(ep,2,4)*vqg(ep,2,4) + vqg(ep,3,4)*vqg(ep,3,4))
921 IF ( sl/=zero) sl = one / sl
922 vqg(ep,1,4) = vqg(ep,1,4)*sl
923 vqg(ep,2,4) = vqg(ep,2,4)*sl
924 vqg(ep,3,4) = vqg(ep,3,4)*sl
925 vqg(ep,4,4)= vqg(ep,8,4)*vqg(ep,3,4)-vqg(ep,9,4)*vqg(ep,2,4)
926 vqg(ep,5,4)= vqg(ep,9,4)*vqg(ep,1,4)-vqg(ep,7,4)*vqg(ep,3,4)
927 vqg(ep,6,4)= vqg(ep,7,4)*vqg(ep,2,4)-vqg(ep,8,4)*vqg(ep,1,4)
928 area(ep)=jac(ep,1)+jac(ep,2)+jac(ep,3)+jac(ep,4)
929 ENDDO
930
931 IF (isrot>0) THEN
932#include "vectorize.inc"
933 DO i=jft,nplat
934 ep =iplat(i)
935 nn(1)=ixc(2,ep)
936 nn(2)=ixc(3,ep)
937 nn(3)=ixc(4,ep)
938 nn(4)=ixc(5,ep)
939
940 rlz(i,1) =(vq(ep,1,3)*vr(1,nn(1))+vq(ep,2,3)*vr(2,nn(1)) +vq(ep,3,3)*vr(3,nn(1)))
941 rlz(i,2) =(vq(ep,1,3)*vr(1,nn(2))+vq(ep,2,3)*vr(2,nn(2)) +vq(ep,3,3)*vr(3,nn(2)))
942 rlz(i,3) =(vq(ep,1,3)*vr(1,nn(3))+vq(ep,2,3)*vr(2,nn(3)) +vq(ep,3,3)*vr(3,nn(3)))
943 rlz(i,4) =(vq(ep,1,3)*vr(1,nn(4))+vq(ep,2,3)*vr(2,nn(4)) +vq(ep,3,3)*vr(3,nn(4)))
944 ENDDO
945 END IF
946
947 DO i=nplat+1,jlt
948 ep =iplat(i)
949 z1=zl1(ep)
950 z2=z1*z1
951 corel(1,1)=vcore(ep,1,1)
952 corel(1,2)=vcore(ep,1,2)
953 corel(1,3)=vcore(ep,1,3)
954 corel(1,4)=vcore(ep,1,4)
955 corel(2,1)=vcore(ep,2,1)
956 corel(2,2)=vcore(ep,2,2)
957 corel(2,3)=vcore(ep,2,3)
958 corel(2,4)=vcore(ep,2,4)
959 nn(1)=ixc(2,ep)
960 nn(2)=ixc(3,ep)
961 nn(3)=ixc(4,ep)
962 nn(4)=ixc(5,ep)
963 x13 =(vcore(ep,1,1)-vcore(ep,1,3))*half
964 x24 =(vcore(ep,1,2)-vcore(ep,1,4))*half
965 y13 =(vcore(ep,2,1)-vcore(ep,2,3))*half
966 y24 =(vcore(ep,2,2)-vcore(ep,2,4))*half
967 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
968 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
969
970
971
972
973 rr(1,1) =vq(ep,1,1)*vr(1,nn(1))+vq(ep,2,1)*vr(2,nn(1))+vq(ep,3,1)*vr(3,nn(1))
974 rr(1,2) =vq(ep,1,1)*vr(1,nn(2))+vq(ep,2,1)*vr(2,nn(2))+vq(ep,3,1)*vr(3,nn(2))
975 rr(1,3) =vq(ep,1,1)*vr(1,nn(3))+vq(ep,2,1)*vr(2,nn(3))+vq(ep,3,1)*vr(3,nn(3))
976 rr(1,4) =vq(ep,1,1)*vr(1,nn(4))+vq(ep,2,1)*vr(2,nn(4))+vq(ep,3,1)*vr(3,nn(4))
977 rr(2,1) =vq(ep,1,2)*vr(1,nn(1))+vq(ep,2,2)*vr(2,nn(1))+vq(ep,3,2)*vr(3,nn(1))
978 rr(2,2) =vq(ep,1,2)*vr(1,nn(2))+vq(ep,2,2)*vr(2,nn(2))+vq(ep,3,2)*vr(3,nn(2))
979 rr(2,3) =vq(ep,1,2)*vr(1,nn(3))+vq(ep,2,2)*vr(2,nn(3))+vq(ep,3,2)*vr(3,nn(3))
980 rr(2,4) =vq(ep,1,2)*vr(1,nn(4))+vq(ep,2,2)*vr(2,nn(4))+vq(ep,3,2)*vr(3,nn(4))
981 rr(3,1) =vq(ep,1,3)*vr(1,nn(1))+vq(ep,2,3)*vr(2,nn(1))+vq(ep,3,3)*vr(3,nn(1))
982 rr(3,2) =vq(ep,1,3)*vr(1,nn(2))+vq(ep,2,3)*vr(2,nn(2))+vq(ep,3,3)*vr(3,nn(2))
983 rr(3,3) =vq(ep,1,3)*vr(1,nn(3))+vq(ep,2,3)*vr(2,nn(3))+vq(ep,3,3)*vr(3,nn(3))
984 rr(3,4) =vq(ep,1,3)*vr(1,nn(4))+vq(ep,2,3)*vr(2,nn(4))+vq(ep,3,3)*vr(3,nn(4))
985
986 ar(1)=-z1*vhi(ep,2)+y13*v13(ep,3)+y24*v24(ep,3)+my13*vhi(ep,3)+rr(1,1)+rr(1,2)+rr(1,3)+rr(1,4)
987 ar(2)= z1*vhi(ep,1)-x13*v13(ep,3)-x24*v24(ep,3)-mx13*vhi(ep,3)+rr(2,1)+rr(2,2)+rr(2,3)+rr(2,4)
988 ar(3)= x13*v13(ep,2)+x24*v24(ep,2)+mx13*vhi(ep,2)-y13*v13(ep,1)-y24*v24(ep,1)-my13*vhi(ep,1)+rr(3,1)+rr(3,2)+rr(3,3)+rr(3,4)
989
990 xx1 = corel(1,1)*corel(1,1)+corel(1,2)*corel(1,2)+corel(1,3)*corel(1,3)+corel(1,4)*corel(1,4)
991 yy = corel(2,1)*corel(2,1)+corel(2,2)*corel(2,2)+corel(2,3)*corel(2,3)+corel(2,4)*corel(2,4)
992 xy = corel(1,1)*corel(2,1)+corel(1,2)*corel(2,2)+corel(1,3)*corel(2,3)+corel(1,4)*corel(2,4)
993 xz1 = (corel(1,1)-corel(1,2)+corel(1,3)-corel(1,4))*z1
994 yz = (corel(2,1)-corel(2,2)+corel(2,3)-corel(2,4))*z1
995 zz = four*z2
996 d(1)= yy+zz+4
997 d(2)= xx1+zz+4
998 d(3)= xx1+yy+4
999 d(4)= -xy
1000 d(5)= -xz1
1001 d(6)= -yz
1002
1003 abc = d(1)*d(2)*d(3)
1004 xxyz2 = d(1)*d(6)*d(6)
1005 yyxz2 = d(2)*d(5)*d(5)
1006 zzxy2 = d(3)*d(4)*d(4)
1007 deta = abc+2*d(4)*d(5)*d(6)-xxyz2-yyxz2-zzxy2
1008 IF (deta<em20) THEN
1009 deta=one
1010 ELSE
1011 deta=one/deta
1012 ENDIF
1013 di(ep,1) = (abc-xxyz2)*deta/d(1)
1014 di(ep,2) = (abc-yyxz2)*deta/d(2)
1015 di(ep,3) = (abc-zzxy2)*deta/d(3)
1016 di(ep,4) = (d(5)*d(6)-d(4)*d(3))*deta
1017 di(ep,5) = (d(6)*d(4)-d(5)*d(2))*deta
1018 di(ep,6) = (d(4)*d(5)-d(6)*d(1))*deta
1019
1020 alr(1) =di(ep,1)*ar(1)+di(ep,4)*ar(2)+di(ep,5)*ar(3)
1021 alr(2) =di(ep,4)*ar(1)+di(ep,2)*ar(2)+di(ep,6)*ar(3)
1022 alr(3) =di(ep,5)*ar(1)+di(ep,6)*ar(2)+di(ep,3)*ar(3)
1023 v13(ep,1)= half*v13(ep,1)+alr(3)*y13
1024 v24(ep,1)= half*v24(ep,1)+alr(3)*y24
1025 vhi(ep,1)= fourth*vhi(ep,1)+(alr(3)*my13-z1*alr(2))
1026 v13(ep,2)= half*v13(ep,2)-alr(3)*x13
1027 v24(ep,2)= half*v24(ep,2)-alr(3)*x24
1028 vhi(ep,2)= fourth*vhi(ep,2)-(alr(3)*mx13-z1*alr(1))
1029 v13(ep,3)= half*v13(ep,3)-(y13*alr(1)-x13*alr(2))
1030 v24(ep,3)= half*v24(ep,3)-(y24*alr(1)-x24*alr(2))
1031 vhi(ep,3)= fourth*vhi(ep,3)+(mx13*alr(2)-my13*alr(1))
1032
1033 vxyz(ep,1,1)= v13(ep,1)+vhi(ep,1)
1034 vxyz(ep,1,2)= v24(ep,1)-vhi(ep,1)
1035 vxyz(ep,1,3)= -v13(ep,1)+vhi(ep,1)
1036 vxyz(ep,1,4)= -v24(ep,1)-vhi(ep,1)
1037
1038 vxyz(ep,2,1)= v13(ep,2)+vhi(ep,2)
1039 vxyz(ep,2,2)= v24(ep,2)-vhi(ep,2)
1040 vxyz(ep,2,3)= -v13(ep,2)+vhi(ep,2)
1041 vxyz(ep,2,4)= -v24(ep,2)-vhi(ep,2)
1042
1043 vxyz(ep,3,1)= v13(ep,3)+vhi(ep,3)
1044 vxyz(ep,3,2)= v24(ep,3)-vhi(ep,3)
1045 vxyz(ep,3,3)= -v13(ep,3)+vhi(ep,3)
1046 vxyz(ep,3,4)= -v24(ep,3)-vhi(ep,3)
1047
1048 rr(1,1)= rr(1,1)-alr(1)
1049 rr(1,2)= rr(1,2)-alr(1)
1050 rr(1,3)= rr(1,3)-alr(1)
1051 rr(1,4)= rr(1,4)-alr(1)
1052
1053 rr(2,1)= rr(2,1)-alr(2)
1054 rr(2,2)= rr(2,2)-alr(2)
1055 rr(2,3)= rr(2,3)-alr(2)
1056 rr(2,4)= rr(2,4)-alr(2)
1057
1058 rr(3,1)= rr(3,1)-alr(3)
1059 rr(3,2)= rr(3,2)-alr(3)
1060 rr(3,3)= rr(3,3)-alr(3)
1061 rr(3,4)= rr(3,4)-alr(3)
1062 rxyz(ep,1,1)=vqn(ep,1,1)*rr(1,1)+vqn(ep,2,1)*rr(2,1)+vqn(ep,3,1)*rr(3,1)
1063 rxyz(ep,2,1)=vqn(ep,4,1)*rr(1,1)+vqn(ep,5,1)*rr(2,1)+vqn(ep,6,1)*rr(3,1)
1064 rxyz(ep,1,2)=vqn(ep,1,2)*rr(1,2)+vqn(ep,2,2)*rr(2,2)+vqn(ep,3,2)*rr(3,2)
1065 rxyz(ep,2,2)=vqn(ep,4,2)*rr(1,2)+vqn(ep,5,2)*rr(2,2)+vqn(ep,6,2)*rr(3,2)
1066 rxyz(ep,1,3)=vqn(ep,1,3)*rr(1,3)+vqn(ep,2,3)*rr(2,3)+vqn(ep,3,3)*rr(3,3)
1067 rxyz(ep,2,3)=vqn(ep,4,3)*rr(1,3)+vqn(ep,5,3)*rr(2,3)+vqn(ep,6,3)*rr(3,3)
1068 rxyz(ep,1,4)=vqn(ep,1,4)*rr(1,4)+vqn(ep,2,4)*rr(2,4)+vqn(ep,3,4)*rr(3,4)
1069 rxyz(ep,2,4)=vqn(ep,4,4)*rr(1,4)+vqn(ep,5,4)*rr(2,4)+vqn(ep,6,4)*rr(3,4)
1070
1071 IF (isrot>0) THEN
1072 rlz(i,1)=(vqn(ep,7,1)*rr(1,1)+vqn(ep,8,1)*rr(2,1)+vqn(ep,9,1)*rr(3,1))
1073 rlz(i,2)=(vqn(ep,7,2)*rr(1,2)+vqn(ep,8,2)*rr(2,2)+vqn(ep,9,2)*rr(3,2))
1074 rlz(i,3)=(vqn(ep,7,3)*rr(1,3)+vqn(ep,8,3)*rr(2,3)+vqn(ep,9,3)*rr(3,3))
1075 rlz(i,4)=(vqn(ep,7,4)*rr(1,4)+vqn(ep,8,4)*rr(2,4)+vqn(ep,9,4)*rr(3,4))
1076 END IF
1077 END DO
1078
1079
1080
1081
1082 DO i=jft,jlt
1083 rx(i)=xl2(i)+xl3(i)-xl4(i)
1084 ry(i)=yl2(i)+yl3(i)-yl4(i)
1085 sx(i)=-xl2(i)+xl3(i)+xl4(i)
1086 sy(i)=-yl2(i)+yl3(i)+yl4(i)
1087 c1=sqrt(rx(i)*rx(i)+ry(i)*ry(i))
1088 c2=sqrt(sx(i)*sx(i)+sy(i)*sy(i))
1089 s1=fourth*(
max(c1,c2)/
min(c1,c2)-one)
1090 fac1=
min(half,s1)+one
1091 fac2=four*
area(i)/(c1*c2)
1092 fac2=3.413*
max(zero,fac2-0.7071)
1093 fac2=0.78+0.22*fac2*fac2*fac2
1094 faci=two*fac1*fac2
1095
1096 facn(i,1)=sqrt(l24(i)/ll(i))
1097 facn(i,2)=sqrt(l13(i)/ll(i))
1098 s1 = sqrt(faci*(four_over_3+lm(i)*area_i(i))*ll(i))
1101 ENDDO
1102
1103 off_l = zero
1104 DO ep=jft,jlt
1105
1106 off(ep) =
min(one,abs(offg(ep)))
1107 off_l =
min(off_l,offg(ep))
1108 ENDDO
1109
1110 IF(off_l<zero)THEN
1111 DO ep=jft,jlt
1112 IF(offg(ep)<zero)THEN
1113 vxyz(ep,1,1)= zero
1114 vxyz(ep,2,1)= zero
1115 vxyz(ep,3,1)= zero
1116 vxyz(ep,1,2)= zero
1117 vxyz(ep,2,2)= zero
1118 vxyz(ep,3,2)= zero
1119 vxyz(ep,1,3)= zero
1120 vxyz(ep,2,3)= zero
1121 vxyz(ep,3,3)= zero
1122 vxyz(ep,1,4)= zero
1123 vxyz(ep,2,4)= zero
1124 vxyz(ep,3,4)= zero
1125
1126 rxyz(ep,1,1)= zero
1127 rxyz(ep,2,1)= zero
1128 rxyz(ep,1,2)= zero
1129 rxyz(ep,2,2)= zero
1130 rxyz(ep,1,3)= zero
1131 rxyz(ep,2,3)= zero
1132 rxyz(ep,1,4)= zero
1133 rxyz(ep,2,4)= zero
1134 ENDIF
1135 ENDDO
1136 ENDIF
1137 IF(anim_ply > 0) THEN
1138#include "lockon.inc"
1139 DO ep=jft,jlt
1140 i1 = inod(ixc(2,ep))
1141 i2 = inod(ixc(3,ep))
1142 i3 = inod(ixc(4,ep))
1143 i4 = inod(ixc(5,ep))
1144
1145 vn_nod(1,i1) = vn_nod(1,i1)+vq(ep,1,3)
1146 vn_nod(2,i1) = vn_nod(2,i1)+vq(ep,2,3)
1147 vn_nod(3,i1) = vn_nod(3,i1)+vq(ep,3,3)
1148
1149 vn_nod(1,i2) =vn_nod(1,i2)+vq(ep,1,3)
1150 vn_nod(2,i2) =vn_nod(2,i2)+vq(ep,2,3)
1151 vn_nod(3,i2) =vn_nod(3,i2)+vq(ep,3,3)
1152
1153 vn_nod(1,i3) =vn_nod(1,i3)+vq(ep,1,3)
1154 vn_nod(2,i3) =vn_nod(2,i3)+vq(ep,2,3)
1155 vn_nod(3,i3) =vn_nod(3,i3)+vq(ep,3,3)
1156
1157
1158 vn_nod(1,i4) =vn_nod(1,i4)+vq(ep,1,3)
1159 vn_nod(2,i4) =vn_nod(2,i4)+vq(ep,2,3)
1160 vn_nod(3,i4) =vn_nod(3,i4)+vq(ep,3,3)
1161 ENDDO
1162#include "lockoff.inc"
1163 ENDIF
1164
1165 RETURN
subroutine clskew3(jft, jlt, irep, rx, ry, rz, sx, sy, sz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, det)
subroutine cortdir3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, rx, ry, rz, sx, sy, sz, e1x, e1y, e1z, e2x, e2y, e2z, nel)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine area(d1, x, x2, y, y2, eint, stif0)