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.
 
 
 
 
 
 

89 lines
2.8 KiB

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 SCANOD (A, IVAR, VAR, WHOTIM, XN, YN, ZN,
& VALMIN, NUMMIN, XYZMIN, ISTMIN, VALMAX, NUMMAX, XYZMAX, ISTMAX)
C=======================================================================
C --*** SCANOD *** (BLOT) Scale nodal variable
C -- Written by Amy Gilkey - revised 04/01/88
C --
C --SCANOD reads the values for the nodal variable from the database
C --and finds the minimum and maximum value.
C --
C --Parameters:
C -- A - IN - the dynamic memory base array
C -- IVAR - IN - the variable index (for GETVAR)
C -- VAR - SCRATCH - the variable array
C -- WHOTIM - IN - true iff time step is a whole (versus history) time step
C -- XN, YN, ZN - IN - the nodal coordinates
C -- VALMIN, VALMAX - OUT - the minimum and maximum value
C -- NUMMIN, NUMMAX - OUT - the node number of the minimum and maximum value
C -- XYZMIN, XYZMAX - OUT - the coordinates of NUMMIN, NUMMAX
C -- ISTMIN, ISTMAX - OUT - the step number of the minimum and maximum value
C --
C --Common Variables:
C -- Uses NDIM, NUMNP, NVARNP, NSTEPS of /DBNUMS/
include 'dbnums.blk'
DIMENSION A(*)
REAL VAR(*)
LOGICAL WHOTIM(*)
REAL XN(*), YN(*), ZN(*)
REAL VALMIN, VALMAX
INTEGER NUMMIN, NUMMAX
REAL XYZMIN(3), XYZMAX(3)
INTEGER ISTMIN, ISTMAX
DO 110 ISTEP = 1, NSTEPS
IF (.NOT. WHOTIM(ISTEP)) GOTO 110
C --Read the variables
CALL GETVAR (A, IVAR, -999, ISTEP, NUMNP, VAR)
C --Find minimum and maximum variable values for variable
IF (ISTEP .EQ. 1) THEN
INP = 1
VALMIN = VAR(INP)
NUMMIN = INP
ISTMIN = ISTEP
VALMAX = VAR(INP)
NUMMAX = INP
ISTMAX = ISTEP
END IF
DO 100 INP = 1, NUMNP
IF (VALMIN .GT. VAR(INP)) THEN
VALMIN = VAR(INP)
NUMMIN = INP
ISTMIN = ISTEP
ELSE IF (VALMAX .LT. VAR(INP)) THEN
VALMAX = VAR(INP)
NUMMAX = INP
ISTMAX = ISTEP
END IF
100 CONTINUE
110 CONTINUE
DO 120 I = 1, 3
XYZMIN(I) = 0.0
120 CONTINUE
IF (NDIM .GE. 1) XYZMIN(1) = XN(NUMMIN)
IF (NDIM .GE. 2) XYZMIN(2) = YN(NUMMIN)
IF (NDIM .GE. 3) XYZMIN(3) = ZN(NUMMIN)
DO 130 I = 1, 3
XYZMAX(I) = 0.0
130 CONTINUE
IF (NDIM .GE. 1) XYZMAX(1) = XN(NUMMAX)
IF (NDIM .GE. 2) XYZMAX(2) = YN(NUMMAX)
IF (NDIM .GE. 3) XYZMAX(3) = ZN(NUMMAX)
RETURN
END