blob: fad2be01fd60eb590839f405d0976323335afaf8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
SUBROUTINE gser(gamser,a,x,gln)
implicit none
INTEGER ITMAX
REAL*8 a,gamser,gln,x,EPS
PARAMETER (ITMAX=100,EPS=3.d-7)
CU USES gammln
INTEGER n
REAL*8 ap,del,sum,gammln
gln=gammln(a)
if(x.le.0)then
if(x.lt.0)pause 'x < 0 in gser'
gamser=0
return
endif
ap=a
sum=1/a
del=sum
do 11 n=1,ITMAX
ap=ap+1
del=del*x/ap
sum=sum+del
if(abs(del).lt.abs(sum)*EPS)goto 1
11 continue
pause 'a too large, ITMAX too small in gser'
1 gamser=sum*exp(-x+a*log(x)-gln)
return
END
C (C) Copr. 1986-92 Numerical Recipes Software t4.
|