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.

118 lines
3.8 KiB

2 years ago
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 PRTIMS (OPTION, NOUT, NSTEPS, TIMES)
C=======================================================================
C --*** PRTIMS *** (EXPLORE) Display database time step times
C --
C --PRTIMS displays the time for all time steps.
C --
C --Parameters:
C -- OPTION - IN - '*' to print all, else print options:
C -- 'N' to print the number of time steps
C -- 'M' to print the minimum and maximum time step times
C -- 'T' to print the time step times
C -- NOUT - IN - the output file, <=0 for standard
C -- NSTEPS - IN - the number of time steps
C -- TIMES - IN - the times for each time step
CHARACTER*(*) OPTION
REAL TIMES(*)
CHARACTER*80 STRING
CHARACTER*5 ISTRA
CHARACTER*64 RSTR(3)
REAL RNUM(3)
INTEGER LSTR, NPREC
INTEGER GETPRC
IF (NOUT .GT. 0) WRITE (NOUT, 10030)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, *)
ELSE
WRITE (*, *)
END IF
IF ((OPTION .EQ. '*') .OR. (INDEX (OPTION, 'N') .GT. 0)) THEN
WRITE (STRING, 10000, IOSTAT=IDUM) NSTEPS
10000 FORMAT ('Number of time steps = ', I12)
CALL SQZSTR (STRING, LSTR)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10050) STRING(:LSTR)
ELSE
WRITE (*, 10050) STRING(:LSTR)
END IF
END IF
NPREC=GETPRC()
IF (((OPTION .EQ. '*') .OR. (INDEX (OPTION, 'M') .GT. 0))
& .AND. (NSTEPS .GT. 0)) THEN
CALL MINMAX (NSTEPS, TIMES, TIMMIN, TIMMAX)
IF (NSTEPS .EQ. 1) THEN
CALL NUMSTR1 (NPREC, TIMMIN, RSTR, LSTR)
WRITE (STRING, 10040) 'Time = ', RSTR(1)(:LSTR)
LSTR = LENSTR (STRING)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10060) STRING(:LSTR)
ELSE
WRITE (*, 10060) STRING(:LSTR)
END IF
ELSE
RNUM(1) = TIMMIN
RNUM(2) = TIMMAX
CALL NUMSTR (2, NPREC, RNUM, RSTR, LSTR)
WRITE (STRING, 10040)
& 'Minimum time = ', RSTR(1)(:LSTR)
LSTR = LENSTR (STRING)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10060) STRING(:LSTR)
ELSE
WRITE (*, 10060) STRING(:LSTR)
END IF
WRITE (STRING, 10040)
& 'Maximum time = ', RSTR(2)(:LSTR)
LSTR = LENSTR (STRING)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10060) STRING(:LSTR)
ELSE
WRITE (*, 10060) STRING(:LSTR)
END IF
END IF
END IF
IF (((OPTION .EQ. '*') .OR. (INDEX (OPTION, 'T') .GT. 0))
& .AND. (NSTEPS .GT. 0)) THEN
CALL INTSTR (1, 0, NSTEPS, ISTRA, LISTR)
RNUM(2) = TIMES(1)
IF ((RNUM(2) .EQ. 0.0) .AND. (NSTEPS .GT. 1))
& RNUM(2) = TIMES(2)
RNUM(3) = TIMES(NSTEPS)
DO 110 I = 1, NSTEPS
CALL INTSTR (1, LISTR, I, ISTRA, LI)
RNUM(1) = TIMES(I)
CALL NUMSTR (3, NPREC, RNUM, RSTR, LSTR)
WRITE (STRING, 10020) ISTRA(:LI), RSTR(1)(:LSTR)
10020 FORMAT ('Step ', A, ')', 3X, A, :, 3X, A)
LSTR = LENSTR (STRING)
IF (NOUT .GT. 0) THEN
WRITE (NOUT, 10060) STRING(:LSTR)
ELSE
WRITE (*, 10060) STRING(:LSTR)
END IF
110 CONTINUE
END IF
RETURN
10030 FORMAT (/, 1X, 'TIME STEP TIMES')
10040 FORMAT (5A)
10050 FORMAT (1X, 5A)
10060 FORMAT (4X, 5A)
END