531
532
533
535
536
537
538#include "implicit_f.inc"
539
540
541
542#include "com04_c.inc"
543#include "units_c.inc"
544#include "scr03_c.inc"
545#include "sphcom.inc"
546#include "param_c.inc"
547#include "titr_c.inc"
548#include "scr17_c.inc"
549
550
551
552 INTEGER IXS(NIXS,*), ISEL(*), IPOINT(2,*), ITAB(*), ITABM1(*),
553 . ICODE(*),IPARTS(*),ISOLNOD(*),
554 . IXS10(6,*),IPART(LIPART1,*),IXS20(12,*),IXS16(8,*),
555 . KNOD2ELS(*),NOD2ELS(*),SPH2SOL(*),SOL2SPH(2,*)
556 my_real pm(npropm,nummat),geo(npropg,*)
557
558 TYPE (GROUP_) ,DIMENSION(NGRBRIC) :: IGRBRIC
559 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
560
561
562
563 INTEGER I, J, MT, MLAW, JTUR, I1, I2, INEW, K, N, IAD, NN
564 INTEGER IC,IC1,IC2,IC3,IC4,MID,PID
565 CHARACTER MESS*40, MESS2*40
566
567
568
569 INTEGER USR2SYS
570
571 DATA mess/'3D SOLID ELEMENTS DEFINITION '/
572 DATA mess2/'3D SOLID ELEMENTS SELECTION FOR TH PLOT '/
573
574
575
576
577
578 DO i=1,numels8
579 mt=ixs(1,i)
580 mlaw=nint(pm(19,mt))
581 jtur=nint(pm(70,mt))
582 DO j=2,9
583 IF((mlaw==6.AND.jtur/=0) .OR. mlaw==46) THEN
584 ic=icode(ixs(j,i))
585 ic1=ic/512
586 ic2=(ic-512*ic1)/64
587 ic3=(ic-512*ic1-64*ic2)/8
588 ic4=(ic-512*ic1-64*ic2-8*ic3)
589 IF(ic1==7 .OR. ic4==7)ixs(1,i)=-iabs(ixs(1,i))
590 ENDIF
591 ENDDO
592 ENDDO
593
594
595
596 CALL reordr(ixs ,nixs ,numels8,pm ,ipoint ,
597 . iparts,ngrbric,igrbric,nummat)
598
599
600
601 DO i=1,nsurf
602 nn =igrsurf(i)%NSEG
603 DO j=1,nn
604 IF (igrsurf(i)%ELTYP(j) == 1) THEN
605 IF (igrsurf(i)%ELEM(j) <= numels8)
606 . igrsurf(i)%ELEM(j)=ipoint(1,igrsurf(i)%ELEM(j))
607 END IF
608 ENDDO
609 ENDDO
610
611
612
613 IF(nsphsol/=0)THEN
614 DO i=1,numsph
615 IF(sph2sol(i)/=0)sph2sol(i)=ipoint(1,sph2sol(i))
616 ENDDO
617
618
619 DO n=1,numels8
620 sol2sph(1,n)=0
621 sol2sph(2,n)=0
622 END DO
623 n=sph2sol(first_sphsol)
624 sol2sph(1,n)=0
625 sol2sph(2,n)=sol2sph(1,n)+1
626 DO i=first_sphsol+1,first_sphsol+nsphsol-1
627 IF(sph2sol(i)==n)THEN
628 sol2sph(2,n)=sol2sph(2,n)+1
629 ELSE
630 n=sph2sol(i)
631 sol2sph(1,n)=i-1
632 sol2sph(2,n)=sol2sph(1,n)+1
633 END IF
634 END DO
635 END IF
636
637
638
639 DO i=1,numels8
640 ipoint(2,i)=isolnod(i)
641 ENDDO
642 DO i=1,numels8
643 isolnod(ipoint(1,i))=ipoint(2,i)
644 ENDDO
645
646
647
648 DO k=2,9
649 DO i=1,numels
650 n = ixs(k,i)
651 knod2els(n) = knod2els(n) + 1
652 IF(n/=0) nod2els(knod2els(n)) = i
653 END DO
654 END DO
655
656 DO k=1,6
657 DO i=1,numels10
658 n = ixs10(k,i)
659 IF (n/=0) THEN
660 knod2els(n) = knod2els(n) + 1
661 nod2els(knod2els(n)) = numels8+i
662 END IF
663 END DO
664 END DO
665
666 DO k=1,12
667 DO i=1,numels20
668 n = ixs20(k,i)
669 IF (n/=0) THEN
670 knod2els(n) = knod2els(n) + 1
671 nod2els(knod2els(n)) = numels10+numels8+i
672 END IF
673 END DO
674 END DO
675
676 DO k=1,8
677 DO i=1,numels16
678 n = ixs16(k,i)
679 IF (n/=0) THEN
680 knod2els(n) = knod2els(n) + 1
681 nod2els(knod2els(n)) = numels20+numels10+numels8+i
682 END IF
683 END DO
684 END DO
685
686 DO n=numnod,1,-1
687 knod2els(n+1)=knod2els(n)
688 END DO
689 knod2els(1)=0
690
691
692
693 i1=1
694 i2=50
695
696 IF(ipri>=5)THEN
697 WRITE (iout,'(//A//)') titre(206)
698 90 CONTINUE
699 i2=min0(i2,numels8)
700 WRITE (iout,'(//A/A//A/A,A/)')
701 . titre(90),titre(91),
702 . ' ELEMENT INTERNAL PART MATER PRSET',
703 . ' NODE1 NODE2 NODE3 NODE4 NODE5',
704 . ' NODE6 NODE7 NODE8'
705 DO i=i1,i2
706 inew=ipoint(1,i)
707 WRITE (iout,'(5I10)')
708 . ixs(11,inew),inew,ipart(4,iparts(inew)),
709 . ipart(5,iparts(inew)),ipart(6,iparts(inew))
710 IF(isolnod(inew)==4)THEN
711 WRITE (iout,'(8I10)')
712 . itab(ixs(2,inew)),itab(ixs(4,inew)),
713 . itab(ixs(7,inew)),itab(ixs(6,inew))
714 ELSEIF(isolnod(inew)==6)THEN
715 WRITE (iout,'(6I10)')
716 . itab(ixs(5,inew)),itab(ixs(3,inew)),itab(ixs(4,inew)),
717 . itab(ixs(6,inew)),itab(ixs(7,inew)),itab(ixs(8,inew))
718 ELSE
719 WRITE (iout,'(8I10)')
720 . (itab(ixs(j,inew)),j=2,9)
721 ENDIF
722 ENDDO
723 IF(i2==numels8)GOTO 200
724 i1=i1+50
725 i2=i2+50
726 GOTO 90
727
728 200 CONTINUE
729 i1=1
730 i2=50
731
732 290 CONTINUE
733 WRITE (iout,'(//A/A//A/A,A/)')
734 . ' TEN NODE TETRA ELEMENTS',
735 . ' -----------------------',
736 . ' ELEMENT INTERNAL PART MATER PRSET',
737 . ' NODE1 NODE2 NODE3 NODE4 NODE5',
738 . ' NODE6 NODE7 NODE8 NODE9 NODE10'
739 i2=min0(i2,numels10)
740 DO i=i1,i2
741 inew=i+numels8
742 WRITE (iout,'(5I10)')
743 . ixs(11,inew),inew,ipart(4,iparts(inew)),
744 . ipart(5,iparts(inew)),ipart(6,iparts(inew))
745 WRITE (iout,'(10I10)')
746 . itab(ixs(2,inew)),itab(ixs(4,inew)),
747 . itab(ixs(7,inew)),itab(ixs(6,inew)),
748 . (itab(ixs10(j,i)),j=1,6)
749 ENDDO
750 IF(i2==numels10)GOTO 300
751 i1=i1+50
752 i2=i2+50
753 GOTO 290
754
755 300 CONTINUE
756 i1=1
757 i2=50
758
759 dowhile(i1<=numels20)
760 WRITE (iout,'(//A/A//A/A,A/A/A)')
761 . ' TWENTY NODE BRICK ELEMENTS',
762 . ' --------------------------',
763 . ' ELEMENT INTERNAL PART MATER PRSET',
764 . ' NODE1 NODE2 NODE3 NODE4 NODE5',
765 . ' NODE6 NODE7 NODE8',
766 . ' NODE9 NODE10 NODE11 NODE12 NODE13 NODE14',
767 . ' NODE15 NODE16 NODE17 NODE18 NODE19 NODE20'
768 i2=min0(i2,numels20)
769 DO i=i1,i2
770 inew=i+numels8+numels10
771 WRITE (iout,'(5I10)')
772 . ixs(11,inew),inew,ipart(4,iparts(inew)),
773 . ipart(5,iparts(inew)),ipart(6,iparts(inew))
774 WRITE (iout,'(8I10/6I10/6I10)')
775 . (itab(ixs(j,inew)),j=2,9),
776 . (itab(ixs20(j,i)),j=1,12)
777 ENDDO
778 i1=i1+50
779 i2=i2+50
780 ENDDO
781 i1=1
782 i2=50
783
784 dowhile(i1<=numels16)
785 WRITE (iout,'(//A/A//A/A,A/A,A)')
786 . ' SIXTEEN NODE SHELL ELEMENTS',
787 . ' ---------------------------',
788 . ' ELEMENT INTERNAL PART MATER PRSET',
789 . ' NODE1 NODE2 NODE3 NODE4 NODE5',
790 . ' NODE6 NODE7 NODE8',
791 . ' NODE9 NODE10 NODE11 NODE12 NODE13 NODE14',
792 . ' NODE15 NODE16'
793 i2=min0(i2,numels16)
794 DO i=i1,i2
795 inew=i+numels8+numels10+numels20
796 WRITE (iout,'(5I10)')
797 . ixs(11,inew),inew,ipart(4,iparts(inew)),
798 . ipart(5,iparts(inew)),ipart(6,iparts(inew))
799 WRITE (iout,'(8I10/8I10)')
800 . (itab(ixs(j,inew)),j=2,9),
801 . (itab(ixs16(j,i)),j=1,8)
802 ENDDO
803 i1=i1+50
804 i2=i2+50
805 ENDDO
806 ENDIF
807
808 RETURN
subroutine reordr(ix, nx, nel, pm, ipoint, iparts, ngrele, igrelem, nummat)