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
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
|