524
526 USE elbufdef_mod
527
528
529
530#include "implicit_f.inc"
531
532
533
534#include "mvsiz_p.inc"
535
536
537
538#include "com01_c.inc"
539#include "com08_c.inc"
540#include "param_c.inc"
541#include "sphcom.inc"
542#include "task_c.inc"
543#include "vect01_c.inc"
544
545
546
547 INTEGER IXS(NIXS,*), KXSP(NISP,*),
548 . IPARTSP(*), IRST(3,*), IPARG(NPARG,*), NGROUNC,
549 . IGROUNC(*), SOL2SPH(2,*)
551 . x(3,*), spbuf(nspbuf,*), wa(kwasph,*),pm(npropm,*)
552 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
553
554
555
556 INTEGER I, N, IP, KP, NG, MG, J, NP, KFT, IG, NELEM,
557 . NEL, OFFSET, MLW, IPLA,NELSP,K,IR,IS,IT,NSPHDIR,
558 . NPTR,NPTS,NPTT,II(6),JJ(6)
560 . rhon, rhoo, divv, sm,
561 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
562 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
563 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
564 . t11(mvsiz),t12(mvsiz),t13(mvsiz),
565 . t21(mvsiz),t22(mvsiz),t23(mvsiz),
566 . t31(mvsiz),t32(mvsiz),t33(mvsiz),
567 . rx(mvsiz),sx(mvsiz),tx(mvsiz),
568 . ry(mvsiz),sy(mvsiz),ty(mvsiz),
569 . rz(mvsiz),sz(mvsiz),tz(mvsiz),
570 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
571 . s11,s22,s33,s12,s21,s23,s32,s13,s31,
572 . l11,l22,l33,l12,l21,l23,l32,l13,l31,
573 . siglo(mvsiz,6), straglo(mvsiz,6), angl(mvsiz,6),
574 . dglo24(mvsiz,6),sig_heph(mvsiz,6,7),
575 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),sig_heph_glo(mvsiz,6,7),
576 . rbid(6,mvsiz),zeta,eta,ksi,sig_ha8(mvsiz,3,3,3,6)
577
578
579 TYPE(G_BUFEL_) ,POINTER :: GBUF, GBUFSP
580 TYPE(L_BUFEL_) ,POINTER :: LBUF, LBUFSP, LBUF2
581 TYPE(BUF_MAT_) ,POINTER :: MBUF, MBUFSP
582
584 DATA a_gauss /
585 1 0. ,0. ,0. ,
586 1 0. ,0. ,0.
587 1 0. ,0. ,0. ,
588 2 -.577350269189626,0.577350269189626,0. ,
589 2 0. ,0. ,0. ,
590 2 0. ,0. ,0. ,
591 3 -.774596669241483,0. ,0.774596669241483,
592 3 0. ,0. ,0. ,
593 3 0. ,0. ,0. ,
594 4 -.861136311594053,-.339981043584856,0.339981043584856,
595 4 0.861136311594053,0. ,0. ,
596 4 0. ,0. ,0. ,
597 5 -.906179845938664,-.538469310105683,0. ,
598 5 0.538469310105683,0.906179845938664,0. ,
599 5 0. ,0. ,0. ,
600 6 -.932469514203152,-.661209386466265,-.238619186083197,
601 6 0.238619186083197,0.661209386466265,0.932469514203152,
602 6 0. ,0. ,0. ,
603 7 -.949107912342759,-.741531185599394,-.405845151377397,
604 7 0. ,0.405845151377397,0.741531185599394,
605 7 0.949107912342759,0. ,0. ,
606 8 -.960289856497536,-.796666477413627,-.525532409916329,
607 8 -.183434642495650,0.183434642495650,0.525532409916329,
608 8 0.796666477413627,0.960289856497536,0. ,
609 9 -.968160239507626,-.836031107326636,-.613371432700590,
610 9 -.324253423403809,0. ,0.324253423403809,
611 9 0.613371432700590,0.836031107326636,0.968160239507626/
612
613
614 DO ig = 1, ngrounc
615 ng = igrounc(ig)
616 IF(iparg(8,ng)==1)GOTO 300
618 offset = 0
619 ity = iparg(5,ng)
620 ipartsph= iparg(69,ng)
621 IF(ity==1.AND.ipartsph/=0) THEN
622
623
625 2 mlw ,nel ,nft ,iad ,ity ,
626 3 npt ,jale ,ismstr ,jeul ,jtur ,
627 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
628 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
629 6 irep ,iint ,igtyp ,israt ,isrot ,
630 7 icsen ,isorth ,isorthg ,ifailure,jsms )
631 lft = 1
633
634 DO i=1,6
635 ii(i) = nel*(i-1)
636 ENDDO
637
638
639 gbuf => elbuf_tab(ng)%GBUF
640 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
641 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
642
644 1 x, ixs(1,nft+1),gbuf%GAMA, rx,
645 2 ry, rz, sx, sy,
646 3 sz, tx, ty, tz,
647 4 r11, r12, r13, r21,
648 5 r22, r23, r31, r32,
649 6 r33, t11, t12, t13,
650 7 t21, t22, t23, t31,
651 8 t32, t33, jr0, js0,
652 9 jt0, nel, lft, llt,
653 a jhbe, jcvt, isorth)
654
655
656 IF (jhbe==24) THEN
657
658 sig_heph(1:mvsiz,1:6,1:7) = zero
660 1 jr0, js0, jt0, gbuf%SIG,
661 2 gbuf%HOURG,sig_heph, pm, ixs,
662 3 ii, nel, lft, llt)
663
664 IF(isorth==0)THEN
665 DO j=1,7
666 DO i=lft,llt
667
668 l11 =sig_heph(i,1,j)
669 l22 =sig_heph(i,2,j)
670 l33 =sig_heph(i,3,j)
671 l12 =sig_heph(i,4,j)
672 l23 =sig_heph(i,5,j)
673 l13 =sig_heph(i,6,j)
674 s11 =l11*r11(i)+l12*r12(i)+l13*r13(i)
675 s12 =l11*r21(i)+l12*r22(i)+l13*r23(i)
676 s13 =l11*r31(i)+l12*r32(i)+l13*r33(i)
677 s21 =l12*r11(i)+l22*r12(i)+l23*r13(i)
678 s22 =l12*r21(i)+l22*r22(i)+l23*r23(i)
679 s23 =l12*r31(i)+l22*r32(i)+l23*r33(i)
680 s31 =l13*r11(i)+l23*r12(i)+l33*r13(i)
681 s32 =l13*r21(i)+l23*r22(i)+l33*r23(i)
682 s33 =l13*r31(i)+l23*r32(i)+l33*r33(i)
683 sig_heph_glo(i,1,j)=r11(i)*s11+r12(i)*s21+r13(i)*s31
684 sig_heph_glo(i,2,j)=r21(i)*s12+r22(i)*s22+r23(i)*s32
685 sig_heph_glo(i,3,j)=r31(i)*s13+r32(i)*s23+r33(i)*s33
686 sig_heph_glo(i,4,j)=r11(i)*s12+r12(i)*s22+r13(i)*s32
687 sig_heph_glo(i,5,j)=r21(i)*s13+r22(i)*s23+r23(i)*s33
688 sig_heph_glo(i,6,j)=r11(i)*s13+r12(i)*s23+r13(i)*s33
689 END DO
690 END DO
691 ELSE
692 DO j=1,7
693 DO i=lft,llt
694
695 l11 =sig_heph(i,1,j)
696 l22 =sig_heph(i,2,j)
697 l33 =sig_heph(i,3,j)
698 l12 =sig_heph(i,4,j)
699 l23 =sig_heph(i,5,j)
700 l13 =sig_heph(i,6,j)
701 s11 =l11*t11
702 s12 =l11*t21(i)+l12*t22(i)+l13*t23(i)
703 s13 =l11*t31(i)+l12*t32(i)+l13*t33(i)
704 s21 =l12*t11(i)+l22*t12(i)+l23*t13(i)
705 s22 =l12*t21(i)+l22*t22(i)+l23*t23(i)
706 s23 =l12*t31(i)+l22*t32(i)+l23*t33(i)
707 s31 =l13*t11(i)+l23*t12(i)+l33*t13(i)
708 s32 =l13*t21(i)+l23*t22(i)+l33*t23(i)
709 s33 =l13*t31(i)+l23*t32(i)+l33*t33(i)
710 sig_heph_glo(i,1,j)=t11(i)*s11+t12(i)*s21+t13(i)*s31
711 sig_heph_glo(i,2,j)=t21(i)*s12+t22(i)*s22+t23(i)*s32
712 sig_heph_glo(i,3,j)=t31(i)*s13+t32(i
713 sig_heph_glo(i,4,j)=t11(i)*s12+t12(i)*s22+t13(i)*s32
714 sig_heph_glo(i,5,j)=t21(i)*s13+t22(i)*s23+t23(i)*s33
715 sig_heph_glo(i,6,j)=t11(i)*s13+t12(i)*s23+t13(i)*s33
716 END DO
717 END DO
718 ENDIF
719
720 ELSEIF (jhbe==14) THEN
721
722 nptr = elbuf_tab(ng)%NPTR
723 npts = elbuf_tab(ng)%NPTS
724 nptt = elbuf_tab(ng)%NPTT
725 IF(isorth==0)THEN
726 DO ir=1,nptr
727 DO is=1,npts
728 DO it=1,nptt
729
730
731
732 lbuf2 => elbuf_tab(ng)%BUFLY(1)%LBUF(it,ir,is)
733
734 DO i=lft,llt
735
736 l11 =lbuf2%SIG(ii(1)+i)
737 l22 =lbuf2%SIG(ii(2)+i)
738 l33 =lbuf2%SIG(ii(3)+i)
739 l12 =lbuf2%SIG(ii(4)+i)
740 l23 =lbuf2%SIG(ii(5)+i)
741 l13 =lbuf2%SIG(ii(6)+i)
742 s11 =l11*r11(i)+l12*r12(i)+l13*r13(i)
743 s12 =l11*r21(i)+l12*r22(i)+l13*r23(i)
744 s13 =l11*r31(i)+l12*r32(i)+l13*r33(i)
745 s21 =l12*r11(i)+l22*r12(i)+l23*r13(i)
746 s22 =l12*r21(i)+l22*r22(i)+l23*r23(i)
747 s23 =l12*r31(i)+l22*r32(i)+l23*r33(i)
748 s31 =l13*r11(i)+l23*r12(i)+l33*r13(i)
749 s32 =l13*r21(i)+l23*r22(i)+l33*r23(i)
750 s33 =l13*r31(i)+l23*r32(i)+l33*r33(i)
751 sig_ha8(i,ir,is,it,1)=r11(i)*s11+r12(i)*s21+r13(i)*s31
752 sig_ha8(i,ir,is,it,2)=r21(i)*s12+r22(i)*s22+r23(i)*s32
753 sig_ha8(i,ir,is,it,3)=r31(i)*s13+r32(i)*s23+r33(i)*s33
754 sig_ha8(i,ir,is,it,4)=r11(i)*s12+r12(i)*s22+r13(i)*s32
755 sig_ha8(i,ir,is,it,5)=r21(i)*s13+r22(i)*s23+r23(i)*s33
756 sig_ha8(i,ir,is,it,6)=r11(i)*s13+r12(i)*s23+r13(i)*s33
757 END DO
758 END DO
759 END DO
760 END DO
761 ELSE
762 DO ir=1,nptr
763 DO is=1,npts
764 DO it=1,nptt
765 lbuf2 => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it
766 DO i=lft,llt
767
768 l11 =lbuf2%SIG(ii(1)+i)
769 l22 =lbuf2%SIG(ii(2)+i)
770 l33 =lbuf2%SIG(ii(3)+i)
771 l12 =lbuf2%SIG(ii(4)+i)
772 l23 =lbuf2%SIG(ii(5)+i)
773 l13 =lbuf2%SIG(ii(6)+i)
774 s11 =l11*t11(i)+l12*t12(i)+l13*t13(i)
775 s12 =l11*t21(i)+l12*t22(i)+l13*t23(i)
776 s13 =l11*t31(i)+l12*t32(i)+l13*t33(i)
777 s21 =l12*t11(i)+l22*t12(i)+l23*t13(i)
778 s22 =l12*t21(i)+l22*t22(i)+l23*t23(i)
779 s23 =l12*t31(i)+l22*t32(i)+l23*t33(i)
780 s31 =l13*t11(i)+l23*t12(i)+l33*t13(i)
781 s32 =l13*t21(i)+l23*t22(i)+l33*t23(i)
782 s33 =l13*t31(i)+l23*t32(i)+l33*t33(i)
783 sig_ha8(i,ir,is,it,1)=t11(i)*s11+t12(i)*s21+t13(i)*s31
784 sig_ha8(i,ir,is,it,2)=t21(i)*s12+t22(i)*s22+t23(i)*s32
785 sig_ha8(i,ir,is,it,3)=t31(i)*s13+t32(i)*s23+t33(i)*s33
786 sig_ha8(i,ir,is,it,4)=t11(i)*s12+t12(i)*s22+t13(i)*s32
787 sig_ha8(i,ir,is,it,5)=t21(i)*s13+t22(i)*s23+t23(i)*s33
788 sig_ha8(i,ir,is,it,6)=t11(i)*s13+t12(i)*s23+t13(i)*s33
789 END DO
790 END DO
791 END DO
792 END DO
793 ENDIF
794
795 ELSEIF (jcvt == 0)THEN
796
797 DO i=lft,llt
798
799 siglo(i,1) =gbuf%SIG(ii(1)+i)
800 siglo(i,2) =gbuf%SIG(ii(2)+i)
801 siglo(i,3) =gbuf%SIG(ii(3)+i)
802 siglo(i,4) =gbuf%SIG(ii(4)+i)
803 siglo(i,5) =gbuf%SIG(ii(5)+i)
804 siglo(i,6) =gbuf%SIG(ii(6)+i)
805 END DO
806
807 ELSE
808
809
810 IF (isorth== 0) THEN
811 DO i=lft,llt
812
813 l11 =gbuf%SIG(ii(1)+i)
814 l22 =gbuf%SIG(ii(2)+i)
815 l33 =gbuf%SIG(ii(3)+i)
816 l12 =gbuf%SIG(ii(4)+i)
817 l23 =gbuf%SIG(ii(5)+i)
818 l13 =gbuf%SIG(ii(6)+i)
819 s11 =l11*r11(i)+l12*r12(i)+l13*r13(i)
820 s12 =l11*r21(i)+l12*r22(i)+l13*r23(i)
821 s13 =l11*r31(i)+l12*r32(i)+l13*r33(i)
822 s21 =l12*r11(i)+l22*r12(i)+l23*r13(i)
823 s22 =l12*r21(i)+l22*r22(i)+l23*r23(i)
824 s23 =l12*r31(i)+l22*r32(i)+l23*r33(i)
825 s31 =l13*r11(i)+l23*r12(i)+l33*r13(i)
826 s32 =l13*r21(i)+l23*r22(i)+l33*r23(i)
827 s33 =l13*r31(i)+l23*r32(i)+l33*r33(i)
828 siglo(i,1)=r11(i)*s11+r12(i)*s21+r13(i)*s31
829 siglo(i,2)=r21(i)*s12+r22(i)*s22+r23(i)*s32
830 siglo(i,3)=r31(i)*s13+r32(i)*s23+r33(i)*s33
831 siglo(i,4)=r11(i)*s12+r12(i)*s22+r13(i)*s32
832 siglo(i,5)=r21(i)*s13+r22(i)*s23+r23(i)*s33
833 siglo(i,6)=r11(i)*s13+r12(i)*s23+r13(i)*s33
834 END DO
835 ELSE
836 DO i=lft,llt
837
838 l11 =gbuf%SIG(ii(1)+i)
839 l22 =gbuf%SIG(ii(2)+i)
840 l33 =gbuf%SIG(ii(3)+i)
841 l12 =gbuf%SIG(ii(4)+i)
842 l23 =gbuf%SIG(ii(5)+i)
843 l13 =gbuf%SIG(ii(6)+i)
844 s11 =l11*t11(i)+l12*t12(i)+l13*t13(i)
845 s12 =l11*t21(i)+l12*t22(i)+l13*t23(i)
846 s13 =l11*t31(i)+l12*t32(i)+l13*t33(i)
847 s21 =l12*t11(i)+l22*t12(i)+l23*t13(i)
848 s22 =l12*t21(i)+l22*t22(i)+l23*t23(i)
849 s23 =l12*t31(i)+l22*t32(i)+l23*t33(i)
850 s31 =l13*t11(i)+l23*t12(i)+l33*t13(i)
851 s32 =l13*t21(i)+l23*t22(i)+l33*t23(i)
852 s33 =l13*t31(i)+l23*t32(i)+l33*t33(i)
853 siglo(i,1)=t11(i)*s11+t12(i)*s21+t13(i)*s31
854 siglo(i,2)=t21(i)*s12+t22(i)*s22+t23(i)*s32
855 siglo(i,3)=t31(i)*s13+t32(i)*s23+t33(i)*s33
856 siglo(i,4)=t11(i)*s12+t12(i)*s22+t13(i)*s32
857 siglo(i,5)=t21(i)*s13+t22(i)*s23+t23(i)*s33
858 siglo(i,6)=t11(i)*s13+t12(i)*s23+t13(i)*s33
859 END DO
860 END IF
861
862 ENDIF
863
864 IF(elbuf_tab(ng)%BUFLY(1)%L_STRA > 0)THEN
865 IF(jcvt == 0)THEN
866 DO i=lft,llt
867 straglo(i,1)=lbuf%STRA(ii(1)+i)
868 straglo(i,2)=lbuf%STRA(ii(2)+i)
869 straglo(i,3)=lbuf%STRA(ii(3)+i)
870 straglo(i,4)=lbuf%STRA(ii(4)+i)
871 straglo(i,5)=lbuf%STRA(ii(5)+i)
872 straglo(i,6)=lbuf%STRA(ii(6)+i)
873 END DO
874 ELSEIF(isorth==0)THEN
875 DO i=lft,llt
876
877
878 l11 =lbuf%STRA(ii(1)+i)
879 l22 =lbuf%STRA(ii(2)+i)
880 l33 =lbuf%STRA(ii(3)+i)
881 l12 =half*lbuf%STRA(ii(4)+i)
882 l23 =half*lbuf%STRA(ii(5)+i)
883 l13 =half*lbuf%STRA(ii(6)+i)
884 s11 =l11*r11(i)+l12*r12(i)+l13*r13(i)
885 s12 =l11*r21(i)+l12*r22(i)+l13*r23(i)
886 s13 =l11*r31(i)+l12*r32(i)+l13*r33(i)
887 s21 =l12*r11(i)+l22*r12(i)+l23*r13(i)
888 s22 =l12*r21(i)+l22*r22(i)+l23*r23(i)
889 s23 =l12*r31(i)+l22*r32(i)+l23*r33(i)
890 s31 =l13*r11(i)+l23*r12(i)+l33*r13(i)
891 s32 =l13*r21(i)+l23*r22(i)+l33*r23(i)
892 s33 =l13*r31(i)+l23*r32(i)+l33*r33(i)
893 straglo(i,1)=r11(i)*s11+r12(i)*s21+r13(i)*s31
894 straglo(i,2)=r21(i)*s12+r22(i)*s22+r23(i)*s32
895 straglo(i,3)=r31(i)*s13+r32(i)*s23+r33(i)*s33
896 straglo(i,4)=two*(r11(i)*s12+r12(i)*s22+r13(i)*s32)
897 straglo(i,5)=two*(r21(i)*s13+r22(i)*s23+r23(i)*s33)
898 straglo(i,6)=two*(r11(i)*s13+r12(i)*s23+r13(i)*s33)
899 END DO
900 ELSE
901 DO i=lft,llt
902
903
904 l11 =lbuf%STRA(ii(1)+i)
905 l22 =lbuf%STRA(ii(2)+i)
906 l33 =lbuf%STRA(ii(3)+i)
907 l12 =half*lbuf%STRA(ii(4)+i)
908 l23 =half*lbuf%STRA(ii(5)+i)
909 l13 =half*lbuf%STRA(ii(6)+i)
910 s11 =l11*t11(i)+l12*t12(i)+l13*t13(i)
911 s12 =l11*t21(i)+l12*t22(i)+l13*t23(i)
912 s13 =l11*t31(i)+l12*t32(i)+l13*t33(i)
913 s21 =l12*t11(i)+l22*t12(i)+l23*t13(i)
914 s22 =l12*t21(i)+l22*t22(i)+l23*t23(i)
915 s23 =l12*t31(i)+l22*t32(i)+l23*t33(i)
916 s31 =l13*t11(i)+l23*t12(i)+l33*t13(i)
917 s32 =l13*t21(i)+l23*t22(i)+l33*t23(i)
918 s33 =l13*t31(i)+l23*t32(i)+l33*t33(i)
919 straglo(i,1)=t11(i)*s11+t12(i)*s21+t13(i)*s31
920 straglo(i,2)=t21(i)*s12+t22(i)*s22+t23(i)*s32
921 straglo(i,3)=t31(i)*s13+t32(i)*s23+t33(i)*s33
922 straglo(i,4)=two*(t11(i)*s12+t12(i)*s22+t13(i)*s32)
923 straglo(i,5)=two*(t21(i)*s13+t22(i)*s23+t23(i)*s33)
924 straglo(i,6)=two*(t11(i)*s13+t12(i)*s23+t13(i)*s33)
925 END DO
926 END IF
927 END IF
928
929
930 IF(elbuf_tab(ng)%BUFLY(1)%L_ANG > 0)THEN
931 IF(jcvt == 0 .AND. isorth == 0)THEN
932 DO i=lft,llt
933 g11=lbuf%ANG(ii(1)+i)
934 g21=lbuf%ANG(ii(2)+i)
935 g31=lbuf%ANG(ii(3)+i)
936 g12=lbuf%ANG(ii(4)+i)
937 g22=lbuf%ANG(ii(5)+i)
938 g32=lbuf%ANG(ii(6)+i)
939 g13=g21*g32-g31*g22
940 g23=g31*g12-g11*g32
941 g33=g11*g22-g21*g12
942
943 s11=rx(i)*g11+sx(i)*g21+tx(i)*g31
944 s12=rx(i)*g12+sx(i)*g22+tx(i)*g32
945 s13=rx(i)*g13+sx(i)*g23+tx(i)*g33
946 s21=ry(i)*g11+sy(i)*g21+ty(i)*g31
947 s22=ry(i)*g12+sy(i)*g22+ty(i)*g32
948 s23=ry(i)*g13+sy(i)*g23+ty(i)*g33
949 s31=rz(i)*g11+sz(i)*g21+tz(i)*g31
950 s32=rz(i)*g12+sz(i)*g22+tz(i)*g32
951 s33=rz(i)*g13+sz(i)*g23+tz(i)*g33
952 angl(i,1)=s11
953 angl(i,2)=s21
954 angl(i,3)=s31
955 angl(i,4)=s12
956 angl(i,5)=s22
957 angl(i,6)=s32
958 END DO
959 ELSEIF(jcvt /=0 .AND. isorth == 0)THEN
960 DO i=lft,llt
961 g11=lbuf%ANG(ii(1)+i)
962 g21=lbuf%ANG(ii(2)+i)
963 g31=lbuf%ANG(ii(3)+i)
964 g12=lbuf%ANG(ii(4)+i)
965 g22=lbuf%ANG(ii(5)+i)
966 g32=lbuf%ANG(ii(6)+i)
967 g13=g21*g32-g31*g22
968 g23=g31*g12-g11*g32
969 g33=g11*g22-g21*g12
970
971 s11=r11(i)*g11+r12(i)*g21+r13(i)*g31
972 s12=r11(i)*g12+r12(i)*g22+r13(i)*g32
973 s13=r11(i)*g13+r12(i)*g23+r13(i)*g33
974 s21=r21(i)*g11+r22(i)*g21+r23(i)*g31
975 s22=r21(i)*g12+r22(i)*g22+r23(i)*g32
976 s23=r21(i)*g13+r22(i)*g23+r23(i)*g33
977 s31=r31(i)*g11+r32(i)*g21+r33(i)*g31
978 s32=r31(i)*g12+r32(i)*g22+r33(i)*g32
979 s33=r31(i)*g13+r32(i)*g23+r33(i)*g33
980 angl(i,1)=s11
981 angl(i,2)=s21
982 angl(i,3)=s31
983 angl(i,4)=s12
984 angl(i,5)=s22
985 angl(i,6)=s32
986 END DO
987 ELSE
988 DO i=lft,llt
989
990
991
992 angl(i,1)=lbuf%ANG(ii(1)+i)
993 angl(i,2)=lbuf%ANG(ii(2)+i)
994 angl(i,3)=lbuf%ANG(ii(3)+i)
995 angl(i,4)=lbuf%ANG(ii(4)+i)
996 angl(i,5)=lbuf%ANG(ii(5)+i)
997 angl(i,6)=lbuf%ANG(ii(6)+i)
998 END DO
999 END IF
1000 END IF
1001
1002 IF(elbuf_tab(ng)%BUFLY(1)%L_DGLO > 0)THEN
1003
1004 IF(jcvt == 0 .AND. isorth == 0)THEN
1005 DO i=lft,llt
1006
1007 g11=lbuf%DGLO(ii(1)+i)
1008 g22=lbuf%DGLO(ii(2)+i)
1009 g33=lbuf%DGLO(ii(3)+i)
1010 g12=lbuf%DGLO(ii(4)+i)
1011 g23=lbuf%DGLO(ii(5)+i)
1012 g13=lbuf%DGLO(ii(6)+i)
1013 s11=g11*rx(i)+g12*sx(i)+g13*tx(i)
1014 s12=g11*ry(i)+g12*sy(i)+g13*ty(i)
1015 s13=g11*rz(i)+g12*sz(i)+g13*tz(i)
1016 s21=g12*rx(i)+g22*sx(i)+g23*tx(i)
1017 s22=g12*ry(i)+g22*sy(i)+g23*ty(i)
1018 s23=g12*rz(i)+g22*sz(i)+g23*tz(i)
1019 s31=g13*rx(i)+g23*sx(i)+g33*tx(i)
1020 s32=g13*ry(i)+g23*sy(i)+g33*ty(i)
1021 s33=g13*rz(i)+g23*sz(i)+g33*tz(i)
1022
1023 dglo24(i,1)=rx(i
1024 dglo24(i,2)=ry(i)*s12+sy(i)*s22+ty(i)*s32
1025 dglo24(i,3)=rz(i)*s13+sz(i)*s23+tz(i)*s33
1026 dglo24(i,4)=rx(i)*s12+sx(i)*s22+tx(i)*s32
1027 dglo24(i,5)=ry(i)*s13+sy(i)*s23+ty(i)*s33
1028 dglo24(i,6)=rx(i)*s13+sx(i)*s23+tx(i)*s33
1029 END DO
1030 ELSEIF(jcvt /=0 .AND. isorth == 0)THEN
1031 DO i=lft,llt
1032
1033 g11=lbuf%DGLO(ii(1)+i)
1034 g22=lbuf%DGLO(ii(2)+i)
1035 g33=lbuf%DGLO(ii(3)+i)
1036 g12=lbuf%DGLO(ii(4)+i)
1037 g23=lbuf%DGLO(ii(5)+i)
1038 g13=lbuf%DGLO(ii(6)+i)
1039 s11=g11*r11(i)+g12*r12(i)+g13*r13(i)
1040 s12=g11*r21(i)+g12*r22(i)+g13*r23(i)
1041 s13=g11*r31(i)+g12*r32(i)+g13*r33(i)
1042 s21=g12*r11(i)+g22*r12(i)+g23*r13(i)
1043 s22=g12*r21(i)+g22*r22(i)+g23*r23(i)
1044 s23=g12*r31(i)+g22*r32(i)+g23*r33(i)
1045 s31=g13*r11(i)+g23*r12(i)+g33*r13(i)
1046 s32=g13*r21(i)+g23*r22(i)+g33*r23(i)
1047 s33=g13*r31(i)+g23*r32(i)+g33*r33(i)
1048
1049 dglo24(i,1)=r11(i)*s11+r12(i)*s21+r13(i)*s31
1050 dglo24(i,2)=r21(i)*s12+r22(i)*s22+r23(i)*s32
1051 dglo24(i,3)=r31(i)*s13+r32(i)*s23+r33(i)*s33
1052 dglo24(i,4)=r11(i)*s12+r12(i)*s22+r13(i)*s32
1053 dglo24(i,5)=r21(i)*s13+r22(i)*s23+r23(i)*s33
1054 dglo24(i,6)=r11(i)*s13+r12(i)*s23+r13(i)*s33
1055 END DO
1056 ELSE
1057
1058
1059
1060 DO i=lft,llt
1061 dglo24(i,1)=lbuf%DGLO(ii(1)+i)
1062 dglo24(i,2)=lbuf%DGLO(ii(2)+i)
1063 dglo24(i,3)=lbuf%DGLO(ii(3)+i)
1064 dglo24(i,4)=lbuf%DGLO(ii(4)+i)
1065 dglo24(i,5)=lbuf%DGLO(ii(5)+i)
1066 dglo24(i,6)=lbuf%DGLO(ii(6)+i)
1067 END DO
1068 END IF
1069 END IF
1070
1071 DO i=lft,llt
1072 IF(gbuf%OFF(i)==zero) cycle
1073 n=nft+i
1074
1075
1076 nsphdir=nint((sol2sph(2,n)-sol2sph(1,n))**third)
1077 DO kp=1,sol2sph(2,n)-sol2sph(1,n)
1078
1079 np=sol2sph(1,n)+kp
1080 mg =mod(-kxsp(2,np),ngroup+1)
1081 nelsp=iparg(2,mg)
1082 kft=iparg(3,mg)
1083 gbufsp => elbuf_tab(mg)%GBUF
1084 lbufsp => elbuf_tab(mg)%BUFLY(1)%LBUF(1,1,1)
1085 mbufsp => elbuf_tab(mg)%BUFLY(1)%MAT(1,1,1)
1086 j=np-kft
1087 rhon = gbuf%RHO(i)
1088 rhoo = wa(10,np)
1089 divv = (rhoo-rhon)/
max(em30,rhoo*dt1)
1090 wa(13,np) = divv
1091 wa(14,np) = zero
1092 spbuf(2,np) = rhon
1093 gbufsp%RHO(j) = rhon
1094
1095
1096
1097
1098
1099 gbufsp%EINT(j) =gbuf%EINT(i)
1100
1101
1102 DO k=1,6
1103 jj(k) = nelsp*(k-1)
1104 ENDDO
1105
1106
1107 IF (jhbe==14) THEN
1108
1109 ir=irst(1,np-first_sphsol+1)
1110 is=irst(2,np-first_sphsol+1)
1111 it=irst(3,np-first_sphsol+1)
1112 DO k=1,6
1113 gbufsp%SIG(jj(k)+j)=sig_ha8(i,ir,is,it,k)
1114 ENDDO
1115 ELSEIF (jhbe==24) THEN
1116
1117 ir=irst(1,np-first_sphsol+1)
1118 is=irst(2,np-first_sphsol+1)
1119 it=irst(3,np-first_sphsol+1)
1120
1121 eta = a_gauss(ir,nsphdir)
1122 zeta = a_gauss(is,nsphdir)
1123 ksi = a_gauss(it,nsphdir)
1124
1125 DO k=1,6
1126 gbufsp%SIG(jj(k)+j) = sig_heph_glo(i,k,1)
1127 . +zeta*sig_heph_glo(i,k,2)
1128 . +eta*sig_heph_glo(i,k,3)
1129 . +ksi*sig_heph_glo(i,k,4)
1130 . +zeta*eta*sig_heph_glo(i,k,5)
1131 . +zeta*ksi*sig_heph_glo(i,k,6)
1132 . +eta*ksi*sig_heph_glo(i,k,7)
1133 END DO
1134 ELSE
1135 gbufsp%SIG(jj(1)+j) = siglo(i,1)
1136 gbufsp%SIG(jj(2)+j) = siglo(i,2)
1137 gbufsp%SIG(jj(3)+j) = siglo(i,3)
1138 gbufsp%SIG(jj(4)+j) = siglo(i,4)
1139
1140 gbufsp%SIG(jj(6)+j) = siglo(i,6)
1141 ENDIF
1142
1143 wa(1,np)=gbufsp%SIG(jj(1)+j)
1144 wa(2,np)=gbufsp%SIG(jj(2)+j)
1145 wa(3,np)=gbufsp%SIG(jj(3)+j)
1146 wa(4,np)=gbufsp%SIG(jj(4)+j)
1147 wa(5,np)=gbufsp%SIG(jj(5)+j)
1148 wa(6,np)=gbufsp%SIG(jj(6)+j)
1149
1150
1151
1152 IF(gbuf%G_PLA > 0) gbufsp%PLA(j) = gbuf%PLA(i)
1153 IF(gbuf%G_EPSD> 0) gbufsp%EPSD(j)= gbuf%EPSD(i)
1154 IF(gbuf%G_EPSQ> 0) gbufsp%EPSQ(j)= gbuf%EPSQ(i)
1155
1156 IF(gbuf%G_GAMA > 0)THEN
1157
1158
1159 gbufsp%GAMA(jj(1)+j)=t11(i)
1160 gbufsp%GAMA(jj(2)+j)=t21(i)
1161 gbufsp%GAMA(jj(3)+j)=t31(i)
1162 gbufsp%GAMA(jj(4)+j)=t12(i)
1163 gbufsp%GAMA(jj(5)+j)=t22(i)
1164 gbufsp%GAMA(jj(6)+j)=t32(i)
1165 END IF
1166
1167 IF(elbuf_tab(ng)%BUFLY(1)%L_STRA > 0.AND.
1168 . elbuf_tab(mg)%BUFLY(1)%L_STRA > 0)THEN
1169 lbufsp%STRA(jj(1)+j)=straglo(i,1)
1170 lbufsp%STRA(jj(2)+j)=straglo(i,2)
1171 lbufsp%STRA(jj(3)+j)=straglo(i,3)
1172 lbufsp%STRA(jj(4)+j)=straglo(i,4)
1173 lbufsp%STRA(jj(5)+j)=straglo(i,5)
1174 lbufsp%STRA(jj(6)+j)=straglo(i,6)
1175 END IF
1176
1177 IF(elbuf_tab(ng)%BUFLY(1)%L_ANG > 0)THEN
1178 lbufsp%ANG(jj(1)+j)=angl(i,1)
1179 lbufsp%ANG(jj(2)+j)=angl(i,2)
1180 lbufsp%ANG(jj(3)+j)=angl(i,3)
1181 lbufsp%ANG(jj(4)+j)=angl(i,4)
1182 lbufsp%ANG(jj(5)+j)=angl(i,5)
1183 lbufsp%ANG(jj(6)+j)=angl(i,6)
1184 END IF
1185
1186 IF(elbuf_tab(ng)%BUFLY(1)%L_SF > 0)THEN
1187 lbufsp%SF(jj(1)+j)=lbuf%SF(ii(1)+i)
1188 lbufsp%SF(jj(2)+j)=lbuf%SF(ii(2)+i)
1189 lbufsp%SF(jj(3)+j)=lbuf%SF(ii(3)+i)
1190 END IF
1191
1192 IF(elbuf_tab(ng)%BUFLY(1)%L_DAM > 0)THEN
1193 DO k=1,elbuf_tab(ng)%BUFLY(1)%L_DAM
1194 lbufsp%DAM(jj(k)+j)=lbuf%DAM(ii(k)+i)
1195 ENDDO
1196 END IF
1197
1198 IF(elbuf_tab(ng)%BUFLY(1)%L_DSUM > 0)
1199 . lbufsp%DSUM(j)=lbuf%DSUM(i)
1200
1201 IF(elbuf_tab(ng)%BUFLY(1)%L_DGLO > 0)THEN
1202 lbufsp%DGLO(jj(1)+j)=dglo24(i,1)
1203 lbufsp%DGLO(jj(2)+j)=dglo24(i,2)
1204 lbufsp%DGLO(jj(3)+j)=dglo24(i,3)
1205 lbufsp%DGLO(jj(4)+j)=dglo24(i,4)
1206 lbufsp%DGLO(jj(5)+j)=dglo24(i,5)
1207 lbufsp%DGLO(jj(6)+j)=dglo24(i,6)
1208 END IF
1209
1210 IF(elbuf_tab(ng)%BUFLY(1)%L_ROB > 0)
1211 . lbufsp%ROB(j)=lbuf%ROB(i)
1212
1213 IF(elbuf_tab(ng)%BUFLY(1)%L_SIGC > 0)THEN
1214
1215
1216 lbufsp%SIGC(jj(1)+j)=lbuf%SIGC(ii(1)+i)
1217 lbufsp%SIGC(jj(2)+j)=lbuf%SIGC(ii(2)+i)
1218 lbufsp%SIGC(jj(3)+j)=lbuf%SIGC(ii(3)+i)
1219 lbufsp%SIGC(jj(4)+j)=lbuf%SIGC(ii(4)+i)
1220 lbufsp%SIGC(jj(5)+j)=lbuf%SIGC(ii(5)+i)
1221 lbufsp%SIGC(jj(6)+j)=lbuf%SIGC(ii(6)+i)
1222 END IF
1223
1224 IF(elbuf_tab(ng)%BUFLY(1)%L_CRAK > 0)THEN
1225 lbufsp%CRAK(jj(1)+j)=lbuf%CRAK(ii(1)+i)
1226 lbufsp%CRAK(jj(2)+j)=lbuf%CRAK(ii(2)+i)
1227 lbufsp%CRAK(jj(3)+j)=lbuf%CRAK(ii(3)+i)
1228 END IF
1229
1230 IF(elbuf_tab(ng)%BUFLY(1)%L_EPSA > 0)THEN
1231 lbufsp%EPSA(jj(1)+j)=lbuf%EPSA(ii(1)+i)
1232 lbufsp%EPSA(jj(2)+j)=lbuf%EPSA(ii(2)+i)
1233 lbufsp%EPSA(jj(3)+j)=lbuf%EPSA(ii(3)+i)
1234 END IF
1235
1236 IF(elbuf_tab(ng)%BUFLY(1)%L_SIGA > 0)THEN
1237 lbufsp%SIGA(jj(1)+j)=lbuf%SIGA(ii(1)+i)
1238 lbufsp%SIGA(jj(2)+j)=lbuf%SIGA(ii(2)+i)
1239 lbufsp%SIGA(jj(3)+j)=lbuf%SIGA(ii(3)+i)
1240 END IF
1241
1242
1243 IF(elbuf_tab(ng)%BUFLY(1)%L_SIGL > 0)THEN
1244 lbufsp%SIGL(jj(1)+j)=lbuf%SIGL(ii(1)+i)
1245 lbufsp%SIGL(jj(2)+j)=lbuf%SIGL(ii(2)+i)
1246 lbufsp%SIGL(jj(3)+j)=lbuf%SIGL(ii(3)+i)
1247 lbufsp%SIGL(jj(4)+j)=lbuf%SIGL(ii(4)+i)
1248 lbufsp%SIGL(jj(5)+j)=lbuf%SIGL(ii(5)+i)
1249 lbufsp%SIGL(jj(6)+j)=lbuf%SIGL(ii(6)+i)
1250 END IF
1251
1252
1253 IF(elbuf_tab(ng)%BUFLY(1)%NVAR_MAT > 0)THEN
1254 DO k=1,elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
1255 mbufsp%VAR(nelsp*(k-1)+j) = mbuf%VAR(nel*(k-1)+i)
1256 END DO
1257 ENDIF
1258
1259 ENDDO
1260 ENDDO
1261 END IF
1263
1264 300 CONTINUE
1265 END DO
1266
1267
1268 RETURN
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
subroutine sig_heph1(jr0, js0, jt0, gsig, fhour, sig_heph, pm, ixs, ii, nel, lft, llt)
subroutine srep2glo(x, ixs, gama, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r12, r13, r21, r22, r23, r31, r32, r33, t11, t12, t13, t21, t22, t23, t31, t32, t33, jr0, js0, jt0, nel, lft, llt, jhbe, jcvt, isorth)