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.

62 lines
1.9 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 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