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.
90 lines
2.8 KiB
90 lines
2.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 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
|