locate.f90

来自「FORTRANvisualfortran常用数值算法集及源码」· F90 代码 · 共 29 行

F90
29
字号
SUBROUTINE locate(xx,n,x,j)
INTEGER j,n
REAL aaa,x,xx(n)
INTEGER jl,jm,ju
jl=0
ju=n+1
do
  aaa=0.
  if(ju-jl>1) then
    aaa=2.
    jm=(ju+jl)/2
    if((xx(n)>=xx(1)).eqv.(x>=xx(jm))) then
      jl=jm
    else
      ju=jm
    endif
    if(.not.aaa>1.) exit
  endif
  if(.not.aaa>1.) exit
end do
if(x==xx(1)) then
  j=1
else if(x==xx(n)) then
  j=n-1
else
  j=jl
endif
END SUBROUTINE locate

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?