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
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
|