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.

116 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 RDMMAX (IFLD, INTYP, CFIELD,
& NAMIGV, NAMINV, NAMIEV,
& NAMOGV, NAMONV, NAMOEV,
& NSTEP, MMSTEP, MMNAME, MMTYP, MMVAR, MMNUM, *)
C=======================================================================
C --*** RDMMAX *** (EXPLORE) Parse the MINMAX command parameters
C --
C --RDMMAX parses the MINMAX command parameters. It first reads
C --the name, if any, and determines its type and variable number.
C --It then reads the 'ALL' versus 'THIS' parameter.
C --
C --Parameters:
C -- IFLD - IN/OUT - the number of the next entry to scan, incremented
C -- INTYP - IN - the free-format field types
C -- -1 = none, 0 = name, 1 = real, 2 = integer
C -- CFIELD - IN - the input character fields
C -- NAMIGV - IN - the names of the global variables as input
C -- NAMINV - IN - the names of the nodal variables as input
C -- NAMIEV - IN - the names of the element variables as input
C -- NAMOGV - IN - the names of the global variables for comparison
C -- NAMONV - IN - the names of the nodal variables for comparison
C -- NAMOEV - IN - the names of the element variables for comparison
C -- NSTEP - IN - the current step number
C -- MMSTEP - IN/OUT - the requested step number, <=0 for all
C -- MMNAME - IN/OUT - min/max variable name
C -- MMTYP - IN/OUT - min/max variable type:
C -- 'G'lobal, 'N'odal, 'E'lement
C -- MMVAR - IN/OUT - min/max variable number
C -- MMNUM - IN/OUT - number of sequential min/max requests for this
C -- variable
C -- * - return statement if invalid range of integers specified;
C -- message printed
C --
C --Common Variables:
C -- Uses NVARNP, NVAREL, NVARGL of /DBNUMS/
include 'exodusII.inc'
include 'exp_dbnums.blk'
INTEGER INTYP(*)
CHARACTER*(*) CFIELD(*)
CHARACTER*(*) NAMIGV(*), NAMINV(*), NAMIEV(*)
CHARACTER*(*) NAMOGV(*), NAMONV(*), NAMOEV(*)
CHARACTER*(*) MMNAME
CHARACTER MMTYP
CHARACTER*(256) NAME, WORD
CHARACTER CH
CALL FFCHAR (IFLD, INTYP, CFIELD, ' ', NAME)
IF (NAME .NE. ' ') THEN
C --Get the variable name
IV = LOCSTR (NAME, NVARGL, NAMOGV)
IF (IV .GT. 0) THEN
CH = 'G'
NAME = NAMIGV(IV)
ELSE
IV = LOCSTR (NAME, NVARNP, NAMONV)
IF (IV .GT. 0) THEN
CH = 'N'
NAME = NAMINV(IV)
ELSE
IV = LOCSTR (NAME, NVAREL, NAMOEV)
IF (IV .GT. 0) THEN
CH = 'E'
NAME = NAMIEV(IV)
END IF
END IF
END IF
IF (IV .LE. 0) THEN
CALL PRTERR ('CMDERR', 'Expected variable name')
GOTO 100
END IF
C --Get the ALL (versus this time step) field
CALL FFCHAR (IFLD, INTYP, CFIELD, 'THIS', WORD)
IF (WORD .EQ. 'ALL') THEN
MMSTEP = 0
ELSE IF (WORD .EQ. 'THIS') THEN
MMSTEP = NSTEP
ELSE
CALL PRTERR ('CMDERR', 'Expected "ALL" or "THIS"')
GOTO 100
END IF
MMNAME = NAME
MMVAR = IV
MMTYP = CH
MMNUM = 1
ELSE
C --Get next min/max for last variable
IF (MMVAR .EQ. 0) THEN
CALL PRTERR ('CMDERR', 'Expected variable name')
GOTO 100
END IF
END IF
RETURN
100 CONTINUE
RETURN 1
END