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.
 
 
 
 
 
 

178 lines
5.8 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
C=======================================================================
SUBROUTINE PRSSV (NOUT, NSTEP, NUMESS, LISESS, LESSEL,
& IDESS, NEESS, IXEESS, LTEESS, LTSESS, NAME,
$ NVAR, LISVAR, NAMEV, ISVOK, VARS, nvardm,
$ MAPEL, DOMAP)
C=======================================================================
C --*** PRSSV *** (EXPLORE) Display database nodal point set
C --
C --PRSSV displays the sides set vars
C --
C --Parameters:
C -- NOUT - IN - the output file, <=0 for standard
C -- NUMESS - IN - the number of nodal point sets
C -- LISESS - IN - the indices of the selected side sets
C -- LESSEL - IN - the number of elements for all sets
C -- IDESS - IN - the set ID for each set
C -- NEESS - IN - the number of elements for each set
C -- IXEESS - IN - the index of the first element for each set
C -- LTEESS - IN - the elements for all sets
C -- LTSESS - IN - the element sides for all sets
include 'exodusII.inc'
include 'exp_dbase.blk'
INTEGER LISESS(0:*)
INTEGER IDESS(*)
INTEGER NEESS(*)
INTEGER IXEESS(*)
INTEGER LTEESS(*)
INTEGER LTSESS(*)
CHARACTER*(*) NAME(*)
INTEGER LISVAR(0:*)
CHARACTER*(*) NAMEV(*)
INTEGER ISVOK(nvardm,*)
REAL VARS(LESSEL, *)
INTEGER MAPEL(*)
LOGICAL DOMAP
CHARACTER*32 CVAL(6)
CHARACTER*40 FMT20,FMT30, FMT40
INTEGER PRTLEN
INTEGER GETPRC
CHARACTER*20 STRA, STRB
C ... See if need to read the data
if (nstep .ne. nstepss) then
nstepss = nstep
DO 20 IX = 1, LISESS(0)
IESS = LISESS(IX)
IS = IXEESS(IESS)
IE = IS + NEESS(IESS) - 1
ID = idess(iess)
DO 10 IVAR = 1, LISVAR(0)
IF (ISVOK (LISVAR(IVAR),IESS) .NE. 0) THEN
call exgssv(ndb, nstep, lisvar(ivar), id, neess(iess),
$ vars(is,lisvar(ivar)), ierr)
end if
10 continue
20 continue
end if
PRTLEN = GETPRC() + 7
WRITE(FMT20,2000) PRTLEN, PRTLEN-7
WRITE(FMT30,3000) PRTLEN
WRITE(FMT40,4000) PRTLEN
IF (NOUT .GT. 0) WRITE (NOUT, 10000)
if (domap) then
if (nout .gt. 0) then
write (nout, 10005)
else
write (*, 10005)
end if
end if
do 90 i=1, lisvar(0)
irow = ((i-1)/5)+1
icol = i - (irow-1)*5
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10010) irow, icol, NAMEV(LISVAR(I))
ELSE
WRITE (*, 10010) irow, icol, NAMEV(LISVAR(I))
END IF
90 continue
WRITE (STRA, 10001, IOSTAT=IDUM) NUMESS
10001 FORMAT ('(#', I4, ')')
CALL PCKSTR (1, STRA)
LSTRA = LENSTR (STRA)
WRITE (STRB, 10002, IOSTAT=IDUM) LESSEL
10002 FORMAT ('(index=', I12, ')')
CALL PCKSTR (1, STRB)
LSTRB = LENSTR (STRB)
DO 200 IX = 1, LISESS(0)
IESS = LISESS(IX)
WRITE (STRA, 10001, IOSTAT=IDUM) IESS
CALL PCKSTR (1, STRA)
WRITE (STRB, 10002, IOSTAT=IDUM) IXEESS(IESS)
CALL PCKSTR (1, STRB)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10030, IOSTAT=IDUM)
& IDESS(IESS), STRA(:LSTRA),
& NEESS(IESS), STRB(:LSTRB),
$ NAME(IESS)(:LENSTR(NAME(IESS)))
ELSE
WRITE (*, 10030, IOSTAT=IDUM)
& IDESS(IESS), STRA(:LSTRA),
& NEESS(IESS), STRB(:LSTRB),
$ NAME(IESS)(:LENSTR(NAME(IESS)))
END IF
IF (NEESS(IESS) .GT. 0) THEN
IS = IXEESS(IESS)
IE = IS + NEESS(IESS) - 1
do 130 IN = IS,IE
if (domap) then
ID = MAPEL(LTEESS(IN))
else
ID = LTEESS(IN)
end if
DO 110 IVAR = 1, LISVAR(0), 5
MINVAL = IVAR
MAXVAL = MIN (LISVAR(0), IVAR+5-1)
NVAL = MAXVAL - MINVAL + 1
DO 100 I = MINVAL, MAXVAL
IF (ISVOK (LISVAR(I),IESS) .NE. 0) THEN
WRITE (CVAL(I-MINVAL+1), FMT20, IOSTAT=IDUM)
& VARS(IN, LISVAR(I))
ELSE
CVAL(I-MINVAL+1) = '-----------'
END IF
100 CONTINUE
IF (IVAR .LE. 1) THEN
IF (NOUT .GT. 0) THEN
WRITE (NOUT, FMT30, IOSTAT=IDUM)
& ID, LTSESS(IN), (CVAL(I), I=1,NVAL)
ELSE
WRITE (*, FMT30, IOSTAT=IDUM)
& ID, LTSESS(IN), (CVAL(I), I=1,NVAL)
END IF
ELSE
IF (NOUT .GT. 0) THEN
WRITE (NOUT, FMT40, IOSTAT=IDUM)
& (CVAL(I), I=1,NVAL)
ELSE
WRITE (*, FMT40, IOSTAT=IDUM)
& (CVAL(I), I=1,NVAL)
END IF
END IF
110 CONTINUE
130 CONTINUE
end if
200 CONTINUE
RETURN
10000 FORMAT (/, 1X, 'SIDESET TIME STEP VARIABLES')
10010 FORMAT (1X, 'Row ',I4,', Column ',I1,' is variable ',A)
2000 FORMAT('(1PE',I2.2,'.',I2.2,')')
3000 FORMAT('(1X, ''Element'', I12,''.'',I1, 5(2X,A',I2,'))')
4000 FORMAT('(20X, 5 (2X, A',I2,'))')
10005 FORMAT (1X, 'Element ids are Global')
10030 FORMAT (/,1X, 'Set', I12, 1X, A, ':',
& I12, ' elements', 1X, A, ' name = "',A,'"')
END