You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.0 KiB
83 lines
3.0 KiB
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
C NTESS, the U.S. Government retains certain rights in this software.
|
|
C
|
|
C See packages/seacas/LICENSE for details
|
|
|
|
SUBROUTINE OUTPUT (MASS, DENS, VOLM, CG, ZI, MAT, NDIM, NBLK,
|
|
* VOL, VOLMN, IELM, NQUAD, LABMAT, AXI, TIME)
|
|
|
|
include 'nu_io.blk'
|
|
CHARACTER*16 LABMAT(*)
|
|
CHARACTER*16 ENGNOT, ENG1
|
|
REAL MASS(*), DENS(*), VOLM(*), CG(*), ZI(*)
|
|
DIMENSION MAT(6,*), VOLMN(4,*), IELM(4,*)
|
|
LOGICAL AXI, FIRST
|
|
CHARACTER*6 LABEL(3)
|
|
DATA LABEL/' ',' Area ','Volume'/
|
|
DATA FIRST /.TRUE./
|
|
|
|
DO 160 IO=IOMIN,IOMAX
|
|
ENG1 = ENGNOT(TIME,2)
|
|
IF (FIRST) THEN
|
|
WRITE (IO, 10) NQUAD, ENG1
|
|
10 FORMAT (5X,'Mass Properties Calculation',/
|
|
* 5X,I1,'-Point Quadrature, Time = ',A16)
|
|
ELSE
|
|
WRITE (IO, 20) ENG1
|
|
20 FORMAT (' Time = ',A16)
|
|
END IF
|
|
TMASS = 0.
|
|
ILAB = 3
|
|
IF (NDIM .EQ. 2 .AND. .NOT. AXI) ILAB = 2
|
|
WRITE (IO, 30) LABEL(ILAB)
|
|
30 FORMAT(/5X,'Material',7X,'Density',14X,A6,16X,'Mass',
|
|
* 13X,'Label')
|
|
DO 50 ITMP=1,NBLK
|
|
I = MAT(6, ITMP)
|
|
IF (MAT(5,I) .NE. 1) GOTO 50
|
|
WRITE (IO, 40) MAT(1,I),DENS(I),VOLM(I),MASS(I),LABMAT(I)
|
|
TMASS = TMASS + MASS(I)
|
|
40 FORMAT (I10,3(5X,1PE15.8),5X,A16)
|
|
50 CONTINUE
|
|
|
|
WRITE (IO, 60) VOL, TMASS
|
|
60 FORMAT (25X,2(5X,'----------')/,18X,'Total: ',2(5X,1PE15.8)/)
|
|
IF (NDIM .EQ. 2) THEN
|
|
WRITE (IO, 70) CG(1), CG(2), 0.0
|
|
ELSE
|
|
WRITE (IO, 70) (CG(I),I=1,3)
|
|
70 FORMAT (5x,'MASS PROPERTIES--- (Inertias at centroid)'/
|
|
* 5X,' Xc = ',1PE15.8,' Yc = ',1PE15.8,
|
|
* ' Zc = ',1PE15.8)
|
|
END IF
|
|
WRITE (IO, 80) (ZI(I),I=1,3)
|
|
80 FORMAT (5X,'Ixx = ',1PE15.8,' Iyy = ',1PE15.8,
|
|
* ' Izz = ',1PE15.8)
|
|
IF (NDIM .EQ. 2 .AND. .NOT. AXI) THEN
|
|
WRITE (IO, 90) ZI(4)
|
|
90 FORMAT (5X,'Ixy = ',1PE15.8/)
|
|
ELSE IF (NDIM .EQ. 3) THEN
|
|
WRITE (IO, 100) (ZI(I),I=4,6)
|
|
100 FORMAT (5X,'Ixy = ',1PE15.8,' Ixz = ',1PE15.8,
|
|
* ' Iyz = ',1PE15.8/)
|
|
ELSE
|
|
WRITE (IO, 110)
|
|
110 FORMAT (//)
|
|
END IF
|
|
WRITE (IO, 120)LABEL(NDIM),LABEL(NDIM),LABEL(NDIM)
|
|
120 FORMAT (5X,'Mat',T11,'Minimum',T22,'Element',T32,'Maximum',
|
|
* T43,'Element',T53,'Average',T63,'Number of',/
|
|
* 5X,'Num',T12,A6,T23,'Number',T33,A6,T44,'Number',T54,A6,
|
|
* T63,'Elements')
|
|
DO 140 ITMP=1,NBLK
|
|
I = MAT(6,ITMP)
|
|
IF (MAT(5,I) .NE. 1) GOTO 140
|
|
WRITE (IO, 130) MAT(1,I),VOLMN(1,I),IELM(1,I),VOLMN(2,I),
|
|
* IELM(2,I), VOLMN(3,I)/IELM(3,I), IELM(3,I)
|
|
130 FORMAT (I7,4(2X,1PE9.2,1X,I9))
|
|
140 CONTINUE
|
|
160 CONTINUE
|
|
FIRST = .FALSE.
|
|
RETURN
|
|
END
|
|
|