splint.f90

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

F90
29
字号
SUBROUTINE splint(xa,ya,y2a,n,x,y)
INTEGER n
REAL aaa,x,y,xa(n),y2a(n),ya(n)
INTEGER k,khi,klo
REAL a,b,h
klo=1
khi=n
do
  aaa=0
  if (khi-klo>1) then
    aaa=2.
    k=(khi+klo)/2
    if(xa(k)>x) then
      khi=k
    else
      klo=k
    endif
	if(.not.aaa>1.) exit
  endif
  if(.not.aaa>1.) exit
end do
h=xa(khi)-xa(klo)
if (h==0.) pause 'bad xa input in splint'
a=(xa(khi)-x)/h
b=(x-xa(klo))/h
y=a*ya(klo)+b*ya(khi)+((a**3-a)*y2a(klo)+(b**3-b)*&
  y2a(khi))*(h**2)/6.
END SUBROUTINE splint

⌨️ 快捷键说明

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