388
389
390
391#include "implicit_f.inc"
392
393
394
395 INTEGER TBEMTG(3,*), N1, N2, N3, NEL, NNRP, CC_GLOB_LOC(*),
396 . CE_GLOB_LOC(*), NC1, NC2, NC3, OFFNR(*), OFFNC(*)
398 . x1, y1, z1, x2, y2, z2, x3, y3, z3, x0, y0, z0,
399 . telnor(3,*), x(3,*), jac, hbem(nnrp,*), gbem(nnrp,*)
400
401
402
403 INTEGER NPG, IAD, JBID, NBID, IDEG, IAD2, IP, IEL, NN1, NN2, NN3,
404 . NL1, NL2, NL3, IELL, OFFNR2(3), OFFEL
406 . pg(50), wpg(25), w, ksip, etap, val1, val2, val3, xp,
407 . yp, zp, cp, xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
408 . xx4, yy4, zz4, xx5, yy5, zz5, xx6, yy6, zz6, xx0, yy0,
409 . zz0, nrx, nry, nrz, d2, rvl(6), rvlh(3), rvlg
410 .
411
412 DATA pg /.33333333,.33333333,
413 . .33333333,.33333333,
414 . .60000000,.20000000,
415 . .20000000,.60000000,
416 . .20000000,.20000000,
417 . .33333333,.33333333,
418 . .79742699,.10128651,
419 . .10128651,.79742699,
420 . .10128651,.10128651,
421 . .05971587,.47014206,
422 . .47014206,.05971587,
423 . .47014206,.47014206,
424 . .06513010,.06513010,
425 . .86973979,.06513010,
426 . .06513010,.86973979,
427 . .31286550,.04869031,
428 . .63844419,.31286550,
429 . .04869031,.63844419,
430 . .63844419,.04869031,
431 . .31286550,.63844419,
432 . .04869031,.31286550,
433 . .26034597,.26034597,
434 . .47930807,.26034597,
435 . .26034597,.47930807,
436 . .33333333,.33333333/
437 DATA wpg /1.00000000,
438 . -.56250000,.52083333,
439 . .52083333,.52083333,
440 . .22500000,.12593918,
441 . .12593918,.12593918,
442 . .13239415,.13239415,
443 . .13239415,
444 . .05334724,.05334724,
445 . .05334724,.07711376,
446 . .07711376,.07711376,
447 . .07711376,.07711376,
448 . .07711376,.17561526,
449 . .17561526,.17561526,
450 . -.14957004/
451
452 npg=13
453 iad=13
454
455 iad2=2*(iad-1)+1
456 DO ip=1,npg
457 w=wpg(iad)
458 ksip=pg(iad2)
459 etap=pg(iad2+1)
460 iad=iad+1
461 iad2=iad2+2
462 val1=one-ksip-etap
463 val2=ksip
464 val3=etap
465 xp=val1*x1+val2*x2+val3*x3
466 yp=val1*y1+val2*y2+val3*y3
467 zp=val1*z1+val2*z2+val3*z3
468 cp=zero
469 DO iel=1,nel
470 iell=ce_glob_loc(iel)
473
474 nn1=tbemtg(1,iel)
475 nn2=tbemtg(2,iel)
476 nn3=tbemtg(3,iel)
477 nl1=cc_glob_loc(nn1)
478 nl2=cc_glob_loc(nn2)
479 nl3=cc_glob_loc(nn3)
486
487 xx1=x(1,nn1)
488 yy1=x(2,nn1)
489 zz1=x(3,nn1)
490 xx2=x(1,nn2)
491 yy2=x(2,nn2)
492 zz2=x(3,nn2)
493 xx3=x(1,nn3)
494 yy3=x(2,nn3)
495 zz3=x(3,nn3)
496 nrx=telnor(1,iel)
497 nry=telnor(2,iel)
498 nrz=telnor(3,iel)
499 CALL intanl(xx1 , yy1 , zz1, xx2, yy2,
500 . zz2 , xx3 , yy3, zz3, xp ,
501 . yp , zp , nrx, nry, nrz,
502 . rvlh, rvlg)
503
504 hbem(n1,nl1)=hbem(n1,nl1)
505 . +offnr(1)*offnr2(1)*w*val1*rvlh(1)*jac
506 hbem(n1,nl2)=hbem(n1,nl2)
507 . +offnr(1)*offnr2(2)*w*val1*rvlh(2)*jac
508 hbem(n1,nl3)=hbem(n1,nl3)
509 . +offnr(1)*offnr2(3)*w*val1*rvlh(3)*jac
510 hbem(n2,nl1)=hbem(n2,nl1)
511 . +offnr(2)*offnr2(1)*w*val2*rvlh(1)*jac
512 hbem(n2,nl2)=hbem(n2,nl2)
513 . +offnr(2)*offnr2(2)*w*val2*rvlh(2)*jac
514 hbem(n2,nl3)=hbem(n2,nl3)
515 . +offnr(2)*offnr2(3)*w*val2*rvlh(3)*jac
516 hbem(n3,nl1)=hbem(n3,nl1)
517 . +offnr(3)*offnr2(1)*w*val3*rvlh(1)*jac
518 hbem(n3,nl2)=hbem(n3,nl2)
519 . +offnr(3)*offnr2(2)*w*val3*rvlh(2)*jac
520 hbem(n3,nl3)=hbem(n3,nl3)
521 . +offnr(3)*offnr2(3)*w*val3*rvlh(3)*jac
522 cp=cp-rvlh(1)-rvlh(2)-rvlh(3)
523
524 gbem(n1,iell)=gbem(n1,iell)+offnr(1)*offel*w*val1*rvlg*jac
525 gbem(n2,iell)=gbem(n2,iell)+offnr(2)*offel*w*val2*rvlg*jac
526 gbem(n3,iell)=gbem(n3,iell)+offnr(3)*offel*w*val3*rvlg*jac
527 ENDDO
528 hbem(n1,nc1)=hbem(n1,nc1)+offnr(1)*offnc(1)*w*cp*val1*val1*jac
529 hbem(n1,nc2)=hbem(n1,nc2)+offnr(1)*offnc(2)*w*cp*val1*val2*jac
530 hbem(n1,nc3)=hbem(n1,nc3)+offnr(1)*offnc(3)*w*cp*val1*val3*jac
531 hbem(n2,nc1)=hbem(n2,nc1)+offnr(2)*offnc(1)*w*cp*val2*val1*jac
532 hbem(n2,nc2)=hbem(n2,nc2)+offnr(2)*offnc(2)*w*cp*val2*val2*jac
533 hbem(n2,nc3)=hbem(n2,nc3)+offnr(2)*offnc(3)*w*cp*val2*val3*jac
534 hbem(n3,nc1)=hbem(n3,nc1)+offnr(3)*offnc(1)*w*cp*val3*val1*jac
535 hbem(n3,nc2)=hbem(n3,nc2)+offnr(3)*offnc(2)*w*cp*val3*val2*jac
536 hbem(n3,nc3)=hbem(n3,nc3)+offnr(3)*offnc(3)*w*cp*val3*val3*jac
537 ENDDO
538
539 RETURN
subroutine intanl(x1, y1, z1, x2, y2, z2, x3, y3, z3, xs, ys, zs, nrx, nry, nrz, rvlh, rvlg)