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.
130 lines
4.0 KiB
130 lines
4.0 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 DISPV (INIT, INLINE, IFLD, INTYP, CFIELD,
|
||
|
& NAMES, LIDSP, NAMLEN)
|
||
|
C============================================================================
|
||
|
|
||
|
C --*** DISPV *** (BLOT) Process DISPVAR command
|
||
|
C -- Written by John Glick - 11/1/88
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- INIT - IN - .TRUE. iff the purpose of the call is to
|
||
|
C -- initialize the list of display variables and
|
||
|
C -- not to modify it.
|
||
|
C -- INLINE - IN/OUT - the parsed input lines for the log file
|
||
|
C -- IFLD, INTYP, CFIELD, - IN/OUT - the free-field reader index
|
||
|
C -- and character field.
|
||
|
C -- NAMES - IN - the variable names
|
||
|
C -- LIDSP(0:*) - IN/OUT - the indices of the selected variables
|
||
|
C -- whose values will be displayed on the plot legend.
|
||
|
C -- ABS(LIDSP(0)) = the number of variables in the list.
|
||
|
C -- SIGN(LIDSP(0)) specifies whether the variables in the
|
||
|
C -- list should have their values displayed on
|
||
|
C -- the plot legend. If >0, they should;
|
||
|
C -- If <=0, they should not.
|
||
|
C -- LIDSP(i) identifies the ith variable in the list.
|
||
|
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.
|
||
|
|
||
|
include 'params.blk'
|
||
|
LOGICAL INIT
|
||
|
CHARACTER*(*) INLINE(*)
|
||
|
INTEGER IFLD, INTYP(*)
|
||
|
CHARACTER*(*) CFIELD(*)
|
||
|
CHARACTER*(NAMLEN) NAMES(*)
|
||
|
INTEGER LIDSP(0:*)
|
||
|
|
||
|
include 'dbnums.blk'
|
||
|
include 'dbnumgq.blk'
|
||
|
|
||
|
LOGICAL FFMATC
|
||
|
|
||
|
C *****************************************************************
|
||
|
|
||
|
C Check that database is in the EXODUS format
|
||
|
|
||
|
CALL CKEXOD (EXODUS, *140)
|
||
|
CALL DBVIX_BL ('G', 1, IXGL)
|
||
|
|
||
|
IF (INIT) THEN
|
||
|
|
||
|
LIDSP(0) = 1
|
||
|
LIDSP(1) = 0
|
||
|
|
||
|
ELSE
|
||
|
|
||
|
C If there are no fields on the DISPV command line,
|
||
|
C toggle the ON/OFF flag.
|
||
|
|
||
|
IF (INTYP(IFLD) .LE. -1) THEN
|
||
|
LIDSP(0) = -LIDSP(0)
|
||
|
|
||
|
C Check for ON flag.
|
||
|
|
||
|
ELSE IF (FFMATC (IFLD, INTYP, CFIELD, 'ON', 2)) THEN
|
||
|
LIDSP(0) = ABS(LIDSP(0))
|
||
|
CALL FFADDC ('ON', INLINE(1))
|
||
|
|
||
|
C Check for OFF flag.
|
||
|
|
||
|
ELSE IF (FFMATC (IFLD, INTYP, CFIELD, 'OFF', 3)) THEN
|
||
|
LIDSP(0) = - ABS(LIDSP(0))
|
||
|
CALL FFADDC ('OFF', INLINE(1))
|
||
|
|
||
|
C Check for ALL parameter
|
||
|
|
||
|
ELSE IF (FFMATC (IFLD, INTYP, CFIELD, 'ALL', 3)) THEN
|
||
|
LIDSP(0) = NVARGL
|
||
|
LIDSP(1) = 0
|
||
|
DO 110 I = 1, NVARGL
|
||
|
LIDSP(I) = -I
|
||
|
110 CONTINUE
|
||
|
CALL FFADDC ('ALL', INLINE(1))
|
||
|
|
||
|
ELSE
|
||
|
|
||
|
C Temporarily convert existing list to a list
|
||
|
C containing all positive integers.
|
||
|
|
||
|
LIDSP(0) = ABS(LIDSP(0))
|
||
|
DO 120 I = 1, LIDSP(0)
|
||
|
IF (LIDSP(I) .EQ. 0) THEN
|
||
|
LIDSP(I) = 1
|
||
|
ELSE IF (LIDSP(I) .LT. 0) THEN
|
||
|
LIDSP(I) = 1 - LIDSP(I)
|
||
|
ENDIF
|
||
|
120 CONTINUE
|
||
|
|
||
|
C Get list of selected variables
|
||
|
CALL RIXWRD (INLINE(1), IFLD, INTYP, CFIELD,
|
||
|
& 'display variable name', NVARGL, NAMES(IXGL),
|
||
|
& LIDSP(0), LIDSP(1), *140)
|
||
|
|
||
|
C Convert the list back to the proper format.
|
||
|
|
||
|
DO 130 I = 1, LIDSP(0)
|
||
|
LIDSP(I) = LIDSP(I) + 1
|
||
|
IF (LIDSP(I) .LE. 1) THEN
|
||
|
LIDSP(I) = LIDSP(I) - 1
|
||
|
ELSE
|
||
|
LIDSP(I) = -(LIDSP(I) - 1)
|
||
|
ENDIF
|
||
|
130 CONTINUE
|
||
|
|
||
|
ENDIF
|
||
|
|
||
|
ENDIF
|
||
|
GO TO 150
|
||
|
|
||
|
140 CONTINUE
|
||
|
INLINE(1) = ' '
|
||
|
|
||
|
150 CONTINUE
|
||
|
RETURN
|
||
|
END
|