gcf.f90

来自「visual fortran常用数值算法集—原代码」· F90 代码 · 共 30 行

F90
30
字号
SUBROUTINE gcf(gammcf,a,x,gln)
INTEGER ITMAX
REAL a,gammcf,gln,x,EPS,FPMIN
PARAMETER (ITMAX=100,EPS=3.e-7,FPMIN=1.e-30)
!USES gammln
INTEGER i
REAL an,b,c,d,del,h,gammln
gln=gammln(a)
b=x+1.-a
c=1./FPMIN
d=1./b
h=d
do i=1,ITMAX
  an=-i*(i-a)
  b=b+2.
  d=an*d+b
  if(abs(d)<FPMIN) d=FPMIN
  c=b+an/c
  if(abs(c)<FPMIN) c=FPMIN
  d=1./d
  del=d*c
  h=h*del
  if(abs(del-1.)<EPS) then
    gammcf=exp(-x+a*log(x)-gln)*h
    return
  endif
end do
pause 'a too large, ITMAX too small in gcf'
END SUBROUTINE gcf

⌨️ 快捷键说明

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