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.
 
 
 
 
 
 

86 lines
2.7 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 PRNODE (OPTION, NOUT, NUMNP, LISNP,
& NVARNP, LISNV, NAMENV, VARNP, MAP, DOMAP)
C=======================================================================
C --*** PRNODE *** (EXPLORE) Display current database nodal variables
C --
C --PRNODE displays the nodal data for a time step.
C --
C --Parameters:
C -- OPTION - IN - '*' to print all, else print options
C -- NOUT - IN - the output file, <=0 for standard
C -- NUMNP - IN - the number of nodes
C -- LISNP - IN - the indices of the selected nodes
C -- NVARNP - IN - the number of nodal variables
C -- LISNV - IN - the indices of the selected nodal variables
C -- NAMENV - IN - the names of the nodal variables
C -- VARNP - IN - the nodal variables for the time step
include 'exodusII.inc'
CHARACTER*(*) OPTION
INTEGER LISNP(0:*)
INTEGER LISNV(0:*)
CHARACTER*(*) NAMENV(*)
REAL VARNP(numnp,*)
INTEGER MAP(*)
LOGICAL DOMAP
INTEGER GETPRC, PRTLEN
CHARACTER*128 FMT1, FMT
PRTLEN = GETPRC() + 7
WRITE(FMT1,20) PRTLEN, PRTLEN-7
CALL SQZSTR(FMT1, LFMT)
WRITE(FMT, 30) FMT1(:LFMT), FMT1(:LFMT)
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, lisnv(0)
irow = ((i-1)/5)+1
icol = i - (irow-1)*5
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10010) irow, icol, NAMENV(LISNV(I))
ELSE
WRITE (*, 10010) irow, icol, NAMENV(LISNV(I))
END IF
90 continue
DO 100 IX = 1, LISNP(0)
INP = LISNP(IX)
if (domap) then
id = map(inp)
else
id = inp
end if
IF (NOUT .GT. 0) THEN
WRITE (NOUT, FMT, IOSTAT=IDUM)
& ID, (VARNP(INP, LISNV(I)), I=1,LISNV(0))
ELSE
WRITE (*, FMT, IOSTAT=IDUM)
& ID, (VARNP(INP, LISNV(I)), I=1,LISNV(0))
END IF
100 CONTINUE
RETURN
20 FORMAT('1PE',I2.2,'.',I2.2)
30 FORMAT('(1X, ''Node'', I12, 5 (2X, ',A,'), :, /,',
$ '(15X, 5 (2X, ',A,')))')
10000 FORMAT (/, 1X, 'NODAL TIME STEP VARIABLES')
10005 FORMAT (1X, 'Nodal ids are Global')
10010 FORMAT (1X, 'Row ',I4,', Column ',I1,' is variable ',A)
END