Cloned SEACAS for EXODUS library with extra build files for internal package management.
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

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