aboutsummaryrefslogtreecommitdiff
path: root/CarpetExtra/IDHydroToy/src/gser.f77
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.