gammln.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\tomawac\gammln.f
00002 !
00056                      FUNCTION GAMMLN
00057 !                    ***************
00058 !
00059      &( XX    , DEUPI )
00060 !
00061 !***********************************************************************
00062 ! TOMAWAC   V6P1                                   15/06/2011
00063 !***********************************************************************
00064 !
00065 !
00066 !
00067 !reference  "NUMERICAL RECIPES. THE ART OF SCIENTIFIC COMPUTING",
00068 !+                       PRESS ET AL. (1989). (CF. PP 156-157)
00069 !
00070 !
00071 !
00072 !
00073 !
00074 !
00075 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00076 !| DEUPI          |-->| 2.PI
00077 !| XX             |-->| VALUE AT WHICH LOG(GAMMA) IS CALCULATED
00078 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00079 !
00080       IMPLICIT NONE
00081 !
00082 !.....VARIABLES IN ARGUMENT
00083 !     """"""""""""""""""""
00084       DOUBLE PRECISION GAMMLN, XX    , DEUPI
00085 !
00086 !.....LOCAL VARIABLES
00087 !     """""""""""""""""
00088       INTEGER  J
00089       DOUBLE PRECISION STP   , X     , XC    , TMP   , SER   , AUX
00090       DOUBLE PRECISION COF(6)
00091 !
00092 !
00093       COF(1)= 76.180091730D0
00094       COF(2)=-86.505320330D0
00095       COF(3)= 24.014098220D0
00096       COF(4)= -1.231739516D0
00097       COF(5)=  0.001208580D0
00098       COF(6)= -0.000005364D0
00099       STP   =  2.506628275D0
00100 !
00101       IF (XX.LT.1.D0) THEN
00102         XC=2.D0-XX
00103       ELSE
00104         XC=XX
00105       ENDIF
00106       X=XC-1.D0
00107       TMP=X+5.5D0
00108       TMP=(X+0.5D0)*DLOG(TMP)-TMP
00109       SER=1.D0
00110       DO J=1,6
00111         X=X+1.D0
00112         SER=SER+COF(J)/X
00113       ENDDO ! J
00114       GAMMLN=TMP+DLOG(STP*SER)
00115       IF (XX.LT.1D0) THEN
00116         AUX=0.5D0*DEUPI*(1.D0-XX)
00117         GAMMLN=DLOG(AUX/SIN(AUX))-GAMMLN
00118       ENDIF
00119 !
00120       RETURN
00121       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0