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.
61 lines
1.9 KiB
61 lines
1.9 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 CFVMAX (NUMFAC, VARFAC, NMIN, NMAX, FMIN, FMAX)
|
|
C=======================================================================
|
|
|
|
C --*** CFVMAX *** (DETOUR) Calculate face variable min/max and count number
|
|
C -- Written by Amy Gilkey - revised 03/09/88
|
|
C --
|
|
C --CFVMAX calculates the minimum and maximum value of a face variable
|
|
C --and counts the number of occurrences of the minimum and maximum.
|
|
C --
|
|
C --Parameters:
|
|
C -- NUMFAC - IN - the number of surface faces
|
|
C -- VARFAC - IN - the face variable values
|
|
C -- NMIN, NMAX - OUT - the number of variables values matching the
|
|
C -- minimum and the maximum
|
|
C -- FMIN, FMAX - OUT - the face variable minimums and maximums
|
|
|
|
REAL VARFAC(*)
|
|
|
|
LOGICAL INIT
|
|
|
|
NMIN = 0
|
|
NMAX = 0
|
|
FMIN = 0.0
|
|
FMAX = 0.0
|
|
INIT = .TRUE.
|
|
DO 100 IFAC = 1, NUMFAC
|
|
IF (INIT) THEN
|
|
FMIN = VARFAC(IFAC)
|
|
NMIN = 1
|
|
FMAX = VARFAC(IFAC)
|
|
NMAX = 1
|
|
INIT = .FALSE.
|
|
ELSE
|
|
IF (FMIN .GE. VARFAC(IFAC)) THEN
|
|
IF (FMIN .EQ. VARFAC(IFAC)) THEN
|
|
NMIN = NMIN + 1
|
|
ELSE
|
|
FMIN = VARFAC(IFAC)
|
|
NMIN = 1
|
|
END IF
|
|
END IF
|
|
IF (FMAX .LE. VARFAC(IFAC)) THEN
|
|
IF (FMAX .EQ. VARFAC(IFAC)) THEN
|
|
NMAX = NMAX + 1
|
|
ELSE
|
|
FMAX = VARFAC(IFAC)
|
|
NMAX = 1
|
|
END IF
|
|
END IF
|
|
END IF
|
|
100 CONTINUE
|
|
|
|
RETURN
|
|
END
|
|
|