searches for bracketing indices for a value value in an array a
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | val |
value to find in array |
||
real(kind=wp), | intent(in) | :: | a(:) |
array to find val in |
integer function find(val, a) !! searches for bracketing indices for a value value in an array a !> value to find in array real(kind=wp), intent(in) :: val !> array to find val in real(kind=wp), intent(in) :: a(:) integer :: n, lo, mid, hi n = size(a) lo = 0 hi = n + 1 if (val == a(1)) then find = 1 else if (val == a(n)) then find = n-1 else if((val > a(n)) .or. (val < a(1))) then find = -1 else do if (hi-lo <= 1) exit mid = (hi+lo)/2 if (val >= a(mid)) then lo = mid else hi = mid end if end do find = lo end if end function find