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.
58 lines
1.3 KiB
58 lines
1.3 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
|
||
|
|
||
|
FUNCTION INDX (N, L, IVAL)
|
||
|
C************************************************************************
|
||
|
|
||
|
C FUNCTION INDX = FINDS THE INDEX IN L OF IVAL
|
||
|
|
||
|
C************************************************************************
|
||
|
|
||
|
C NOTE:
|
||
|
C L MUST BE IN INCREASING ORDER
|
||
|
C IF IVAL IS NOT IN L, INDEX=0 IS RETURNED
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
DIMENSION L (N)
|
||
|
|
||
|
C BISECTION SEARCH
|
||
|
|
||
|
IF (N .LT. 1) THEN
|
||
|
INDX=0
|
||
|
RETURN
|
||
|
ENDIF
|
||
|
ILO=1
|
||
|
IHI=N
|
||
|
100 CONTINUE
|
||
|
IMID= (ILO + IHI) / 2
|
||
|
|
||
|
C CONVERGENCE
|
||
|
|
||
|
IF (IMID .EQ. ILO) THEN
|
||
|
IF (IVAL .EQ. L (IMID)) THEN
|
||
|
INDX=IMID
|
||
|
RETURN
|
||
|
ELSEIF (IVAL .NE. L (IHI)) THEN
|
||
|
INDX=0
|
||
|
RETURN
|
||
|
ENDIF
|
||
|
INDX=IHI
|
||
|
RETURN
|
||
|
ENDIF
|
||
|
|
||
|
IF (IVAL .LT. L (IMID)) THEN
|
||
|
IHI=IMID
|
||
|
ELSEIF (IVAL .EQ. L (IMID)) THEN
|
||
|
INDX=IMID
|
||
|
RETURN
|
||
|
ELSE
|
||
|
ILO=IMID
|
||
|
ENDIF
|
||
|
GOTO 100
|
||
|
|
||
|
END
|