35 1 GEO,AREA,VCORE,JAC,HX,HY,
36 2 VQN,VQG,VQ,VJFI,VNRM,VASTN,NPLAT,IPLAT,
37 3 X13_T ,X24_T ,Y13_T,Y24_T,
38 4 ELBUF_STR,NLAY, SMSTR,
39 5 IREP,NPT,ISMSTR,DIR_A ,DIR_B,
40 6 PID,MAT,NGL,OFF,ISROT ,NEL)
45 use element_mod ,
only : nixc
49#include "implicit_f.inc"
62 INTEGER IXC(NIXC,*),JFT,JLT,NNOD,NLAY,NPLAT,IPLAT(*),ISROT,NEL
64 . X(3,*), PM(NPROPM,*),GEO(NPROPG,*),OFFG(*)
67 . vcore(mvsiz,3,nnod),
area(*),vjfi(mvsiz,6,4),
68 . vqn(mvsiz,9,nnod),vqg(mvsiz,9,nnod),vq(mvsiz,3,3),
69 . vastn(mvsiz,4,nnod),vnrm(mvsiz,3,nnod),
70 . jac(mvsiz,4),hx(mvsiz,4),hy(mvsiz,4),y24_t(*),
71 . dir_a(nel,*),dir_b(nel,*),off(*),
72 . x13_t(*),x24_t(*),y13_t(*)
75 INTEGER IREP,NPT,ISMSTR,PID(*),MAT(*),NGL(*)
76 TYPE(ELBUF_STRUCT_) :: ELBUF_STR
106 INTEGER J,I,II(6),K,EP,SPLAT,JPLAT(MVSIZ),L,M,MAT_1
110 . X13,X24,Y13,MX13,MX23,MX34,MY13,Z1,Z2,GAMA1,GAMA2,
111 . X21,,Y21,Y34,Z21,Z34,X41,X32,Y41,Y32,Z41,Z32,L12,L34,
112 . a_4,sl,sz2,sz,jmx13,jmy13,jmz13,j2myz,y24,
113 . my23,my34,g1x1,g1x3,g1y1,g1y3,g2x1,g2x2,g2y1,g2y2
115 . lxyz0(3),deta1(mvsiz),rx(mvsiz), ry(mvsiz), rz(mvsiz),
116 . sx(mvsiz),sy(mvsiz),r11(mvsiz),r12(mvsiz),r13(mvsiz),
117 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),r32(mvsiz),
118 . r33(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),
120 . l13(mvsiz),l24(mvsiz),c1,c2,ll(mvsiz)
122 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4,tol
123 DATA pg/.577350269189626/
130 IF (isrot > 0 ) tol=em8
139 rx(i)=x(1,ixc(3,i))+x(1,ixc(4,i))-x(1,ixc(2,i))-x(1,ixc(5,i))
140 sx(i)=x(1,ixc(4,i))+x(1,ixc(5,i))-x(1,ixc(2,i))-x(1,ixc(3,i))
141 ry(i)=x(2,ixc(3,i))+x(2,ixc(4,i))-x(2,ixc(2,i))-x(2,ixc(5,i))
142 sy(i)=x(2,ixc(4,i))+x(2,ixc(5,i))-x(2,ixc(2,i))-x(2,ixc(3,i))
143 rz(i)=x(3,ixc(3,i))+x(3,ixc(4,i))-x(3,ixc(2,i))-x(3,ixc(5,i))
144 ssz(i)=x(3,ixc(4,i))+x(3,ixc(5,i))-x(3,ixc(2,i))-x(3,ixc(3,i))
153 . r11,r12,r13,r21,r22,r23,r31,r32,r33,deta1,offg )
155 area(i)=fourth*deta1(i)
156 area_i(i)=one/
area(i)
173 lxyz0(1)=fourth*(x(1,l)+x(1,m)+x(1,j)+x(1,k))
174 lxyz0(2)=fourth*(x(2,l)+x(2,m)+x(2,j)+x(2,k))
175 lxyz0(3)=fourth*(x(3,l)+x(3,m)+x(3,j)+x(3,k))
181 xl2(i)=r11(i)*xx1+r21(i)*yy1+r31(i)*zz1
182 yl2(i)=r12(i)*xx1+r22(i)*yy1+r32(i)*zz1
187 zl1(i)=r13(i)*xx2+r23(i)*yy2+r33(i)*zz2
192 xl3(i)=r11(i)*xx3+r21(i)*yy3+r31(i)*zz3
193 yl3(i)=r12(i)*xx3+r22(i)*yy3+r32(i)*zz3
198 xl4(i)=r11(i)*xx4+r21(i)*yy4+r31(i)*zz4
199 yl4(i)=r12(i)*xx4+r22(i)*yy4+r32(i)*zz4
204 IF(ismstr==1.OR.ismstr==2)
THEN
206 IF(abs(offg(i))==two)
THEN
207 xl2(i)=smstr(ii(1)+i)
208 yl2(i)=smstr(ii(2)+i)
209 xl3(i)=smstr(ii(3)+i)
210 yl3(i)=smstr(ii(4)+i)
211 xl4(i)=smstr(ii(5)+i)
212 yl4(i)=smstr(ii(6)+i)
215 . ((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
216 area_i(i)=one/
max(em20,
area(i))
218 smstr(ii(1)+i)=xl2(i)
219 smstr(ii(2)+i)=yl2(i)
220 smstr(ii(3)+i)=xl3(i)
221 smstr(ii(4)+i)=yl3(i)
222 smstr(ii(5)+i)=xl4(i)
223 smstr(ii(6)+i)=yl4(i)
229 IF(offg(i)==one)offg(i)=two
236 CALL cortdir3(elbuf_str,dir_a,dir_b ,jft ,jlt ,
237 . nlay ,irep ,rx ,ry ,rz ,
238 . sx ,sy ,ssz ,r11 ,r21 ,
239 . r31 ,r12 ,r22 ,r32 ,nel )
243 lxyz0(1)=fourth*(xl2(ep)+xl3(ep)+xl4(ep))
244 lxyz0(2)=fourth*(yl2(ep)+yl3(ep)+yl4(ep))
245 vcore(ep,1,1)=-lxyz0(1)
246 vcore(ep,1,2)=xl2(ep)-lxyz0(1)
247 vcore(ep,1,3)=xl3(ep)-lxyz0(1)
248 vcore(ep,1,4)=xl4(ep)-lxyz0(1)
249 vcore(ep,2,1)=-lxyz0(2)
250 vcore(ep,2,2)=yl2(ep)-lxyz0(2)
251 vcore(ep,2,3)=yl3(ep)-lxyz0(2)
252 vcore(ep,2,4)=yl4(ep)-lxyz0(2)
253 x13_t(ep) =(vcore(ep,1,1)-vcore(ep,1,3))*half
254 x24_t(ep) =(vcore(ep,1,2)-vcore(ep,1,4))*half
255 y13_t(ep) =(vcore(ep,2,1)-vcore(ep,2,3))*half
256 y24_t(ep) =(vcore(ep,2,2)-vcore(ep,2,4))*half
257 l13(ep)=x13_t(ep)*x13_t(ep)+y13_t(ep)*y13_t(ep)
258 l24(ep)=x24_t(ep)*x24_t(ep)+y24_t(ep)*y24_t(ep)
259 ll(ep)=
max(l13(ep),l24(ep))
261 IF (imp_chk > 0)
THEN
263 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
264 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
265 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
266 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
267 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
268 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
269 j1=(mx23*my13-mx13*my23)*pg
270 j2=-(mx13*my34-mx34*my13)*pg
276 IF(offg(ep)/=zero)
THEN
277 IF(jac(ep,1)<=zero.OR.jac(ep,2)<=zero.OR.
278 . jac(ep,3)<=zero.OR.jac(ep,4)<=zero)
THEN
280 WRITE(iout ,2001) ngl(ep)
281#include "lockoff.inc"
293 IF (z2<tol*ll(ep))
THEN
302 iplat(ep)=jplat(ep-nplat)
304#include "vectorize.inc"
311 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
312 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
313 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
314 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
315 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
316 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
317 x13_t(ep) =x13*area_i(ep)
318 x24_t(ep) =x24*area_i(ep)
319 y13_t(ep) =y13*area_i(ep)
320 y24_t(ep) =y24*area_i(ep)
322 gama1=-mx13*y24+my13*x24
323 gama2= mx13*y13-my13*x13
324 vcore(ep,1,1)=y24_t(ep)
325 vcore(ep,2,1)=-y13_t(ep)
326 vcore(ep,3,1)=-x24_t(ep)
327 vcore(ep,1,2)= x13_t(ep)
328 vcore(ep,2,2)=gama1*area_i(ep)
329 vcore(ep,3,2)=gama2*area_i(ep)
336 j1=(mx23*my13-mx13*my23)*pg
337 j2=-(mx13*my34-mx34*my13)*pg
339 jac(ep,1)=abs(j0+j2-j1)
340 jac(ep,2)=abs(j0+j2+j1)
341 jac(ep,3)=abs(j0-j2+j1)
342 jac(ep,4)=abs(j0-j2-j1)
345 hx(ep,1)=j1/jac(ep,1)
346 hx(ep,2)=j2/jac(ep,2)
347 hx(ep,3)=-j1/jac(ep,3)
348 hx(ep,4)=-j2/jac(ep,4)
351 hy(ep,1)=j1/jac(ep,1)
352 hy(ep,2)=j2/jac(ep,2)
353 hy(ep,3)=-j1/jac(ep,3)
354 hy(ep,4)=-j2/jac(ep,4)
356#include "vectorize.inc"
369 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
370 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
371 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
372 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
373 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
374 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
375 x13_t(ep) =x13*area_i(ep)
376 x24_t(ep) =x24*area_i(ep)
377 y13_t(ep) =y13*area_i(ep)
378 y24_t(ep) =y24*area_i(ep)
380 gama1=-mx13*y24+my13*x24
381 gama2= mx13*y13-my13*x13
392 x34 =(vcore(ep,1,3)-vcore(ep,1,4))*half
394 y34 =(vcore(ep,2,3)-vcore(ep,2,4))*half
397 l12 = sqrt(x21*x21+y21*y21+z2)
398 l34 = sqrt(x34*x34+y34*y34+z2)
403 x32 =(vcore(ep,1,3)-vcore(ep,1,2))*half
405 y32 =(vcore(ep,2,3)-vcore(ep,2,2))*half
420 sl=one/sqrt(sz+sz2*sz2)
425 vqn(ep,7,3)=-vqn(ep,7,1)
426 vqn(ep,8,3)=-vqn(ep,8,1)
427 vqn(ep,7,1)= vqn(ep,7,1)*sl
428 vqn(ep,8,1)= vqn(ep,8,1)*sl
430 vqn(ep,4,1)= vqn(ep,8,1)*vqn(ep,3,1)-vqn(ep,9,1)*vqn(ep,2,1)
431 vqn(ep,5,1)= vqn(ep,9,1)*vqn(ep,1,1)-vqn(ep,7,1)*vqn(ep,3,1)
432 vqn(ep,6,1)= vqn(ep,7,1)*vqn(ep,2,1)-vqn(ep,8,1)*vqn(ep,1,1)
439 sl=one/sqrt(sz+sz2*sz2)
440 vqn(ep,7,3)= vqn(ep,7,3)*sl
441 vqn(ep,8,3)= vqn(ep,8,3)*sl
444 vqn(ep,4,3)= vqn(ep,8,3)*vqn(ep,3,3)-vqn(ep,9,3)*vqn(ep,2,3)
445 vqn(ep,5,3)= vqn(ep,9,3)*vqn(ep,1,3)-vqn(ep,7,3)*vqn(ep,3,3)
446 vqn(ep,6,3)= vqn(ep,7,3)*vqn(ep,2,3)-vqn(ep,8,3)*vqn(ep,1,3)
448 vqn(ep,1,2)=vqn(ep,1,1)
449 vqn(ep,2,2)=vqn(ep,2,1)
450 vqn(ep,3,2)=vqn(ep,3,1)
453 sl=one/sqrt(sz+sz2*sz2)
457 vqn(ep,7,4)=-vqn(ep,7,2)
458 vqn(ep,8,4)=-vqn(ep,8,2)
459 vqn(ep,7,2)= vqn(ep,7,2)*sl
460 vqn(ep,8,2)= vqn(ep,8,2)*sl
462 vqn(ep,4,2)= vqn(ep,8,2)*vqn(ep,3,2)-vqn(ep,9,2)*vqn(ep,2,2)
463 vqn(ep,5,2)= vqn(ep,9,2)*vqn(ep,1,2)-vqn(ep,7,2)*vqn(ep,3,2)
464 vqn(ep,6,2)= vqn(ep,7,2)*vqn(ep,2,2)-vqn(ep,8,2)*vqn(ep,1,2)
466 vqn(ep,1,4)=vqn(ep,1,3)
467 vqn(ep,2,4)=vqn(ep,2,3)
468 vqn(ep,3,4)=vqn(ep,3,3)
470 sl=one/sqrt(sz+sz2*sz2)
471 vqn(ep,7,4)= vqn(ep,7,4)*sl
472 vqn(ep,8,4)= vqn(ep,8,4)*sl
475 vqn(ep,4,4)= vqn(ep,8,4)*vqn(ep,3,4)-vqn(ep,9,4)*vqn(ep,2,4)
476 vqn(ep,5,4)= vqn(ep,9,4)*vqn(ep,1,4)-vqn(ep,7,4)*vqn(ep,3,4)
477 vqn(ep,6,4)= vqn(ep,7,4)*vqn(ep,2,4)-vqn(ep,8,4)*vqn(ep,1,4)
482 vnrm(ep,1,1)=vqn(ep,7,1)+vqn(ep,7,2)
483 vnrm(ep,2,1)=vqn(ep,8,1)+vqn(ep,8,2)
484 vnrm(ep,3,1)=vqn(ep,9,1)+vqn(ep,9,2)
485 c1=sqrt(vnrm(ep,1,1)*vnrm(ep,1,1)+
486 1 vnrm(ep,2,1)*vnrm(ep,2,1)+vnrm(ep,3,1)*vnrm(ep,3,1))
488 vnrm(ep,1,1)=vnrm(ep,1,1)/c1
489 vnrm(ep,2,1)=vnrm(ep,2,1)/c1
490 vnrm(ep,3,1)=vnrm(ep,3,1)/c1
493 vastn(ep,3,1)=vastn(ep,1,1)
494 vastn(ep,4,1)=vastn(ep,2,1)
496 vnrm(ep,1,2)=vqn(ep,7,4)+vqn(ep,7,3)
497 vnrm(ep,2,2)=vqn(ep,8,4)+vqn(ep,8,3)
498 vnrm(ep,3,2)=vqn(ep,9,4)+vqn(ep,9,3)
499 c1=sqrt(vnrm(ep,1,2)*vnrm(ep,1,2)+
500 1 vnrm(ep,2,2)*vnrm(ep,2,2)+vnrm(ep,3,2)*vnrm(ep,3,2))
502 vnrm(ep,1,2)=vnrm(ep,1,2)/c1
503 vnrm(ep,2,2)=vnrm(ep,2,2)/c1
504 vnrm(ep,3,2)=vnrm(ep,3,2)/c1
507 vastn(ep,3,2)=vastn(ep,1,2)
508 vastn(ep,4,2)=vastn(ep,2,2)
510 vnrm(ep,1,3)=vqn(ep,7,1)+vqn(ep,7,4)
511 vnrm(ep,2,3)=vqn(ep,8,1)+vqn(ep,8,4)
512 vnrm(ep,3,3)=vqn(ep,9,1)+vqn(ep,9,4)
513 c1=sqrt(vnrm(ep,1,3)*vnrm(ep,1,3)+
514 1 vnrm(ep,2,3)*vnrm(ep,2,3)+vnrm(ep,3,3)*vnrm(ep,3,3))
516 vnrm(ep,1,3)=vnrm(ep,1,3)/c1
517 vnrm(ep,2,3)=vnrm(ep,2,3)/c1
518 vnrm(ep,3,3)=vnrm(ep,3,3)/c1
519 vastn(ep,1,3)=-(x41*vqn(ep,4,1)+y41*vqn(ep,5,1)+z41*vqn(ep,6,1))
520 vastn(ep,2,3)= x41*vqn(ep,1,1)+y41*vqn(ep,2,1)+z41*vqn(ep,3,1)
521 vastn(ep,3,3)=-(x41*vqn(ep,4,4)+y41*vqn(ep,5,4)+z41*vqn(ep,6,4))
522 vastn(ep,4,3)= x41*vqn(ep,1,4)+y41*vqn(ep,2,4)+z41*vqn(ep,3,4)
524 vnrm(ep,1,4)=vqn(ep,7,2)+vqn(ep,7,3)
525 vnrm(ep,2,4)=vqn(ep,8,2)+vqn(ep,8,3)
526 vnrm(ep,3,4)=vqn(ep,9,2)+vqn(ep,9,3)
527 c1=sqrt(vnrm(ep,1,4)*vnrm(ep,1,4)+
528 1 vnrm(ep,2,4)*vnrm(ep,2,4)+vnrm(ep,3,4)*vnrm(ep,3,4))
530 vnrm(ep,1,4)=vnrm(ep,1,4)/c1
531 vnrm(ep,2,4)=vnrm(ep,2,4)/c1
532 vnrm(ep,3,4)=vnrm(ep,3,4)/c1
533 vastn(ep,1,4)=-(x32*vqn(ep,4,2)+y32*vqn(ep,5,2)+z32*vqn(ep,6,2))
534 vastn(ep,2,4)= x32*vqn(ep,1,2)+y32*vqn(ep,2,2)+z32*vqn(ep,3,2)
535 vastn(ep,3,4)=-(x32*vqn(ep,4,3)+y32*vqn(ep,5,3)+z32*vqn(ep,6,3))
536 vastn(ep,4,4)= x32*vqn(ep,1,3)+y32*vqn(ep,2,3)+z32*vqn(ep,3,3)
554 vqg(ep,7,3)=-vqg(ep,7,1)
555 vqg(ep,8,3)=-vqg(ep,8,1)
556 vqg(ep,7,1)= vqg(ep,7,1)*sl
557 vqg(ep,8,1)= vqg(ep,8,1)*sl
561 c1 = sqrt(g1x1*g1x1 + g1y1*g1y1 +j2myz )
564 c2 = sqrt(g2x1*g2x1 + g2y1*g2y1 +j2myz)
565 vjfi(ep,1,1)=(g2y1*vqg(ep,9,1)+jmz13*vqg(ep,8,1))
566 vjfi(ep,2,1)=(-jmz13*vqg(ep,7,1)-g2x1*vqg(ep,9,1))
567 vjfi(ep,3,1)=(g2x1*vqg(ep,8,1)-g2y1
568 vqg(ep,1,1)= g1x1*c2+vjfi(ep,1,1)*c1
569 vqg(ep,2,1)= g1y1*c2+vjfi(ep,2,1)*c1
570 vqg(ep,3,1)= -jmz13*c2+vjfi(ep,3,1)*c1
572 vjfi(ep,1,1)=vjfi(ep,1,1)*sl
573 vjfi(ep,2,1)=vjfi(ep,2,1)*sl
574 vjfi(ep,3,1)=vjfi(ep,3,1)*sl
576 vjfi(ep,4,1)=(-jmz13*vqg(ep,8,1)-g1y1*vqg(ep,9,1))*sl
577 vjfi(ep,5,1)=(g1x1*vqg(ep,9,1)+jmz13*vqg(ep,7,1))*sl
578 vjfi(ep,6,1)=(g1y1*vqg(ep,7,1)-g1x1*vqg(ep,8,1))*sl
580 sl = sqrt(vqg(ep,1,1)*vqg(ep,1,1) + vqg(ep,2,1)*vqg(ep,2,1)
581 1 + vqg(ep,3,1)*vqg(ep,3,1))
582 IF ( sl/=zero) sl = one / sl
583 vqg(ep,1,1) = vqg(ep,1,1)*sl
584 vqg(ep,2,1) = vqg(ep,2,1)*sl
585 vqg(ep,3,1) = vqg(ep,3,1)*sl
587 vqg(ep,4,1)= vqg(ep,8,1)*vqg(ep,3,1)-vqg(ep,9,1)*vqg(ep,2,1)
588 vqg(ep,5,1)= vqg(ep,9,1)*vqg(ep,1,1)-vqg(ep,7,1)*vqg(ep,3,1)
589 vqg(ep,6,1)= vqg(ep,7,1)*vqg(ep,2,1)-vqg(ep,8,1)*vqg(ep,1,1)
595 vqg(ep,7,3)= vqg(ep,7,3)*sl
596 vqg(ep,8,3)= vqg(ep,8,3)*sl
601 j1 = sqrt(g1x3*g1x3 + g1y3*g1y3 +j2myz )
605 j2 = sqrt(g2x2*g2x2 + g2y2*g2y2 +j2myz)
606 vjfi(ep,1,3)=(g2y2*vqg(ep,9,3)-jmz13*vqg(ep,8,3))
607 vjfi(ep,2,3)=(jmz13*vqg(ep,7,3)-g2x2*vqg(ep,9,3))
608 vjfi(ep,3,3)=(g2x2*vqg(ep,8,3)-g2y2*vqg(ep,7,3))
609 vqg(ep,1,3)= g1x3*j2+vjfi(ep,1,3)*j1
610 vqg(ep,2,3)= g1y3*j2+vjfi(ep,2,3)*j1
611 vqg(ep,3,3)= jmz13*j2+vjfi(ep,3,3)*j1
613 vjfi(ep,1,3)=vjfi(ep,1,3)*sl
614 vjfi(ep,2,3)=vjfi(ep,2,3)*sl
615 vjfi(ep,3,3)=vjfi(ep,3,3)*sl
617 vjfi(ep,4,3)=(jmz13*vqg(ep,8,3)-g1y3*vqg(ep,9,3))*sl
618 vjfi(ep,5,3)=(g1x3*vqg(ep,9,3)-jmz13*vqg(ep,7,3))*sl
619 vjfi(ep,6,3)=(g1y3*vqg(ep,7,3)-g1x3*vqg(ep,8,3))*sl
621 sl = sqrt(vqg(ep,1,3)*vqg(ep,1,3) + vqg(ep,2,3)*vqg(ep,2,3)
622 1 + vqg(ep,3,3)*vqg(ep,3,3))
623 IF ( sl/=zero) sl = one / sl
624 vqg(ep,1,3) = vqg(ep,1,3)*sl
625 vqg(ep,2,3) = vqg(ep,2,3)*sl
626 vqg(ep,3,3) = vqg(ep,3,3)*sl
628 vqg(ep,4,3)= vqg(ep,8,3)*vqg(ep,3,3)-vqg(ep,9,3)*vqg(ep,2,3)
629 vqg(ep,5,3)= vqg(ep,9,3)*vqg(ep,1,3)-vqg(ep,7,3)*vqg(ep,3,3)
630 vqg(ep,6,3)= vqg(ep,7,3)*vqg(ep,2,3)-vqg(ep,8,3)*vqg(ep,1,3)
640 vqg(ep,7,4)=-vqg(ep,7,2)
641 vqg(ep,8,4)=-vqg(ep,8,2)
642 vqg(ep,7,2)= vqg(ep,7,2)*sl
643 vqg(ep,8,2)= vqg(ep,8,2)*sl
645 vjfi(ep,1,2)=(g2y2*vqg(ep,9,2)-jmz13*vqg(ep,8,2))
646 vjfi(ep,2,2)=(jmz13*vqg(ep,7,2)-g2x2*vqg(ep,9,2))
647 vjfi(ep,3,2)=(g2x2*vqg(ep,8,2)-g2y2*vqg(ep,7,2))
648 vqg(ep,1,2)= g1x1*j2+vjfi(ep,1,2)*c1
649 vqg(ep,2,2)= g1y1*j2+vjfi(ep,2,2)*c1
650 vqg(ep,3,2)=-jmz13*j2+vjfi(ep,3,2)*c1
652 vjfi(ep,1,2)=vjfi(ep,1,2)*sl
653 vjfi(ep,2,2)=vjfi(ep,2,2)*sl
654 vjfi(ep,3,2)=vjfi(ep,3,2)*sl
656 vjfi(ep,4,2)=(-jmz13*vqg(ep,8,2)-g1y1*vqg(ep,9,2))*sl
657 vjfi(ep,5,2)=(g1x1*vqg(ep,9,2)+jmz13*vqg(ep,7,2))*sl
658 vjfi(ep,6,2)=(g1y1*vqg(ep,7,2)-g1x1*vqg(ep,8,2))*sl
660 sl = sqrt(vqg(ep,1,2)*vqg(ep,1,2) + vqg(ep,2,2)*vqg(ep,2,2)
661 1 + vqg(ep,3,2)*vqg(ep,3,2))
662 IF ( sl/=0.) sl = 1. / sl
663 vqg(ep,1,2) = vqg(ep,1,2)*sl
664 vqg(ep,2,2) = vqg(ep,2,2)*sl
665 vqg(ep,3,2) = vqg(ep,3,2)*sl
666 vqg(ep,4,2)= vqg(ep,8,2)*vqg(ep,3,2)-vqg(ep,9,2)*vqg(ep,2,2)
667 vqg(ep,5,2)= vqg(ep,9,2)*vqg(ep,1,2)-vqg(ep,7,2)*vqg(ep,3,2)
668 vqg(ep,6,2)= vqg(ep,7,2)*vqg(ep,2,2)-vqg(ep,8,2)*vqg(ep,1,2)
674 vqg(ep,7,4)= vqg(ep,7,4)*sl
675 vqg(ep,8,4)= vqg(ep,8,4)*sl
678 vjfi(ep,1,4)=(g2y1*vqg(ep,9,4)+jmz13*vqg(ep,8,4))
679 vjfi(ep,2,4)=(-jmz13*vqg(ep,7,4)-g2x1*vqg(ep,9,4))
680 vjfi(ep,3,4)=(g2x1*vqg(ep,8,4)-g2y1*vqg(ep,7,4))
681 vqg(ep,1,4)= g1x3*c2+vjfi(ep,1,4)*j1
682 vqg(ep,2,4)= g1y3*c2+vjfi(ep,2,4)*j1
683 vqg(ep,3,4)=jmz13*c2+vjfi(ep,3,4)*j1
685 vjfi(ep,1,4)=vjfi(ep,1,4)*sl
686 vjfi(ep,2,4)=vjfi(ep,2,4)*sl
687 vjfi(ep,3,4)=vjfi(ep,3,4)*sl
689 vjfi(ep,4,4)=(jmz13*vqg(ep,8,4)-g1y3*vqg(ep,9,4))*sl
690 vjfi(ep,5,4)=(g1x3*vqg(ep,9,4)-jmz13*vqg(ep,7,4))*sl
691 vjfi(ep,6,4)=(g1y3*vqg(ep,7,4)-g1x3*vqg(ep,8,4))*sl
693 sl = sqrt(vqg(ep,1,4)*vqg(ep,1,4) + vqg(ep,2,4)*vqg(ep,2,4)
694 1 + vqg(ep,3,4)*vqg(ep,3,4))
695 IF ( sl/=zero) sl = one / sl
696 vqg(ep,1,4) = vqg(ep,1,4)*sl
697 vqg(ep,2,4) = vqg(ep,2,4)*sl
698 vqg(ep,3,4) = vqg(ep,3,4)*sl
699 vqg(ep,4,4)= vqg(ep,8,4)*vqg(ep,3,4)-vqg(ep,9,4)*vqg(ep,2,4)
700 vqg(ep,5,4)= vqg(ep,9,4)*vqg(ep,1,4)-vqg(ep,7,4)*vqg(ep,3,4)
701 vqg(ep,6,4)= vqg(ep,7,4)*vqg(ep,2,4)-vqg(ep,8,4)*vqg(ep,1,4)
702 area(ep)=jac(ep,1)+jac(ep,2)+jac(ep,3)+jac(ep,4)
710 2001
FORMAT(/
' ZERO OR NEGATIVE SHELL SUB-AREA : ELEMENT NB:',