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