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.
201 lines
6.9 KiB
201 lines
6.9 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 SPPLT1 (A, NEUTRL, IPTIMS, TIMES, IDTIME,
|
||
|
& N, OVER, NCRV, NUMCRV,
|
||
|
& NENUM, DIST, PLTVAL, TXLAB, TYLAB, NAMES,
|
||
|
& NNE, ISEGEL, NPDON, NPTOT, LIDSP, BLKCOL,
|
||
|
* MAPEL, MAPND, *)
|
||
|
C=======================================================================
|
||
|
|
||
|
C --*** SPPLT1 *** (SPLOT) Plot the curve for a time and a variable
|
||
|
C -- Modified by John Glick - 11/4/88
|
||
|
C -- Written by Amy Gilkey - revised 01/22/88
|
||
|
C --
|
||
|
C --SPPLT1 plots the curve requested for a single time step and for
|
||
|
C --a single variable, it assumes that the X axis (and possibly the Y
|
||
|
C --axis) has been scaled.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- A - IN - the dynamic memory base array
|
||
|
C -- NEUTRL - IN - the type of neutral file to write.
|
||
|
C -- IPTIMS - IN - the selected time steps
|
||
|
C -- TIMES - IN - the database times
|
||
|
C -- IDTIME - IN - the id in the IPTIMS array identifying the
|
||
|
C -- timeplane of the time being plotted.
|
||
|
C -- N - IN - the curve variable number
|
||
|
C -- OVER - IN - true iff the curve is overlaid
|
||
|
C -- NCRV - IN - the curve number
|
||
|
C -- NUMCRV - IN - true iff the curve limits needs to be numbered
|
||
|
C -- NENUM - IN - the selected node/element numbers
|
||
|
C -- DIST - IN - the plot distances (compressed)
|
||
|
C -- PLTVAL - IN - the plot data for this curve (compressed)
|
||
|
C -- TXLAB, TYLAB - IN - the X and Y axis labels (scratch for neutral file)
|
||
|
C -- NAMES - IN - the variable names
|
||
|
C -- NNE - IN - the number of selected nodes/elements with defined values
|
||
|
C -- ISEGEL - IN - the NENUM indices of the defined elements
|
||
|
C -- (only if NNE < NNENUM)
|
||
|
C -- NPDON - IN - the current plot number (only if OVER)
|
||
|
C -- NPTOT - IN - the total number of plots (only if OVER)
|
||
|
C -- LIDSP(0:*) - IN - the indices of the selected variables
|
||
|
C -- whose values will be displayed on the plot legend.
|
||
|
C -- LIDSP(0) = the number of variables in the list.
|
||
|
C -- LIDSP(i) identifies the ith variable in the list.
|
||
|
C -- If LIDSP(i) > 0, LIDSP(i) is the id of a history variable.
|
||
|
C -- If LIDSP(i) < 0, -LIDSP(i) is the id of a global variable.
|
||
|
C -- If LIDSP(i) = 0, TIME is to be displayed on the plot legend
|
||
|
C -- BLKCOL - IN/OUT - the user selected colors of the element blocks.
|
||
|
C -- BLKCOL(0) = 1 if the user defined material
|
||
|
C -- colors should be used in mesh plots.
|
||
|
C -- = -1 if program selected colors should
|
||
|
C -- be used.
|
||
|
C -- BLKCOL(i) = the user selected color of element
|
||
|
C -- block i:
|
||
|
C -- -2 - no color selected by user.
|
||
|
C -- -1 - black
|
||
|
C -- 0 - white
|
||
|
C -- 1 - red
|
||
|
C -- 2 - green
|
||
|
C -- 3 - yellow
|
||
|
C -- 4 - blue
|
||
|
C -- 5 - cyan
|
||
|
C -- 6 - magenta
|
||
|
C -- * - return statement if cancel or quit
|
||
|
C --
|
||
|
C --Common Variables:
|
||
|
C -- Uses NNENUM of /SELNE/
|
||
|
C -- Uses NSPVAR of /SPVARS/
|
||
|
C -- Uses DOGRID, LINTYP, ISYTYP, LABSID of /XYOPT/
|
||
|
C -- Uses IYSCAL of /XYLIM/
|
||
|
C -- Sets YMIN, YMAX of /XYLIM/
|
||
|
|
||
|
include 'params.blk'
|
||
|
include 'neutral.blk'
|
||
|
include 'dbnums.blk'
|
||
|
include 'xyopt.blk'
|
||
|
include 'selne.blk'
|
||
|
include 'spvars.blk'
|
||
|
include 'xylim.blk'
|
||
|
|
||
|
DIMENSION A(*)
|
||
|
INTEGER IPTIMS(*)
|
||
|
REAL TIMES(*)
|
||
|
INTEGER IDTIME
|
||
|
LOGICAL OVER
|
||
|
LOGICAL NUMCRV
|
||
|
INTEGER NENUM(NNENUM)
|
||
|
REAL DIST(NNENUM)
|
||
|
REAL PLTVAL(NNENUM)
|
||
|
CHARACTER*(*) TXLAB, TYLAB
|
||
|
CHARACTER*(*) NAMES(*)
|
||
|
INTEGER ISEGEL(*)
|
||
|
INTEGER LIDSP(0:*)
|
||
|
INTEGER BLKCOL(0:NELBLK)
|
||
|
INTEGER MAPEL(*), MAPND(*)
|
||
|
|
||
|
LOGICAL GRABRT
|
||
|
CHARACTER*80 PLTITL
|
||
|
|
||
|
C --Calculate min/max if needed
|
||
|
|
||
|
IF (IYSCAL .EQ. 'CURVE') THEN
|
||
|
CALL MINMAX (NNE, PLTVAL, YMIN, YMAX)
|
||
|
IF (NEUTRL .EQ. 0)
|
||
|
* CALL EXPMAX (' ', YMIN, YMAX)
|
||
|
END IF
|
||
|
IF (OVER) THEN
|
||
|
IF (IYSCAL .EQ. 'CURVE')
|
||
|
& CALL XYAXIS (NCRV, DOGRID, TXLAB, TYLAB, BLKCOL, *120)
|
||
|
END IF
|
||
|
|
||
|
IF (NEUTRL .EQ. CSV) THEN
|
||
|
CALL prterr('CMDREQ','CSV neutral format not yet '//
|
||
|
$ 'supported for SPLOT.')
|
||
|
return 1
|
||
|
END IF
|
||
|
|
||
|
IF (NEUTRL .EQ. 0) THEN
|
||
|
|
||
|
C --Label plot if needed
|
||
|
|
||
|
100 CONTINUE
|
||
|
IF (.NOT. OVER) THEN
|
||
|
CALL SPLAB (A, 1, IPTIMS(IDTIME), TIMES,
|
||
|
& NENUM, N, 1, NUMCRV, NAMES,
|
||
|
& TXLAB, TYLAB, LIDSP, BLKCOL, MAPEL, MAPND, *120)
|
||
|
CALL XYAXIS (0, DOGRID, TXLAB, TYLAB, BLKCOL, *120)
|
||
|
END IF
|
||
|
|
||
|
IF (GRABRT()) RETURN 1
|
||
|
|
||
|
IF (OVER) THEN
|
||
|
CALL GRCOLR (NCRV)
|
||
|
CALL GRSYMB (LINTYP, ISYTYP, NCRV)
|
||
|
ELSE
|
||
|
CALL GRCOLR (1)
|
||
|
CALL GRSYMB (LINTYP, ISYTYP, 1)
|
||
|
END IF
|
||
|
|
||
|
IF (GRABRT()) RETURN 1
|
||
|
|
||
|
C --Plot variable against distances
|
||
|
|
||
|
IEND = 0
|
||
|
110 CONTINUE
|
||
|
IF (IEND .LT. NNE) THEN
|
||
|
IF (NNE .LT. NNENUM) THEN
|
||
|
CALL SPSEGM (NNE, ISEGEL, ISTART, IEND)
|
||
|
ELSE
|
||
|
ISTART = 1
|
||
|
IEND = NNENUM
|
||
|
END IF
|
||
|
NLEFT = IEND - ISTART + 1
|
||
|
CALL PLTCUR (DIST(ISTART), PLTVAL(ISTART), NLEFT)
|
||
|
GOTO 110
|
||
|
END IF
|
||
|
|
||
|
IF (NUMCRV) THEN
|
||
|
IF (GRABRT()) RETURN 1
|
||
|
CALL GRNCRV (LABSID, NCRV, NNE, DIST, PLTVAL,
|
||
|
& (LINTYP .EQ. 0))
|
||
|
END IF
|
||
|
|
||
|
C --Finish plot
|
||
|
|
||
|
IF (OVER) CALL PLTFLU
|
||
|
IF (.NOT. OVER) THEN
|
||
|
C --Set color in case text is requested
|
||
|
CALL UGRCOL (0, BLKCOL)
|
||
|
CALL GRPEND (.TRUE., .TRUE., NPDON, NPTOT, .FALSE.,
|
||
|
* *100, *120)
|
||
|
END IF
|
||
|
|
||
|
ELSE
|
||
|
|
||
|
C --Get plot labels
|
||
|
|
||
|
CALL SPLABN (N, TIMES(IPTIMS(IDTIME)), NENUM, NAMES,
|
||
|
& PLTITL, TXLAB, TYLAB, MAPEL, MAPND)
|
||
|
|
||
|
C --Plot variable against distances
|
||
|
|
||
|
IF (NEUTRL .EQ. XMGR) THEN
|
||
|
CALL WRTNEU (NNE, DIST, PLTVAL, PLTITL, TXLAB, TYLAB)
|
||
|
ELSE IF (NEUTRL .EQ. GRAF) THEN
|
||
|
CALL GRFNEU (NNE, DIST, PLTVAL, PLTITL, TXLAB, TYLAB)
|
||
|
ELSE IF (NEUTRL .EQ. CSV .or. NEUTRL .EQ. XML) THEN
|
||
|
CALL prterr('CMDREQ','CSV neutral format not yet '//
|
||
|
$ 'supported for SPLOT.')
|
||
|
END IF
|
||
|
END IF
|
||
|
|
||
|
RETURN
|
||
|
|
||
|
120 CONTINUE
|
||
|
RETURN 1
|
||
|
END
|