SUBROUTINE CDGLN ( * * inputs * : XX, * * outputs * : GAMLN) * * Module number: * * Module name: * * Keyphrase: * ---------- * calculate the natural log of gamma function by using six coefficients * * Description: * ------------ * adapted from Numerical Recipes by William Press et. al., p. 157, * subroutine GAMMLN * Double precision version * * FORTRAN name: CDGLN.FOR * * Keywords of accessed files and tables: * -------------------------------------- * Name I/O Description / Comments * * Subroutines Called: * ------------------- * CDBS: * None * SDAS: * None * Others: * None * * History: * -------- * Version Date Author Description * 1 11-11-88 J.-C. HSU coding * *------------------------------------------------------------------------------- * *== input: * --argument of the gamma function DOUBLE PRECISION XX * *== output: * --functional value DOUBLE PRECISION GAMLN * *== local: * --coefficients DOUBLE PRECISION COF(6), : STP, HALF, ONE, FPF, X, TMP, SER * --loop index INTEGER I * DATA COF, STP / 76.18009173D0, : -86.50532033D0, : 24.01409822D0, : -1.231739516D0, : 0.120858003D-2, : -0.536382D-5, : 2.50662827465D0/ DATA HALF, ONE, FPF / 0.5D0, 1.D0, 5.5D0/ *------------------------------------------------------------------------------ * X = XX - ONE TMP = X + FPF TMP = (X + HALF) * LOG (TMP) - TMP SER = ONE * DO 10 I = 1, 6 X = X + ONE SER = SER + COF(I) / X 10 CONTINUE * GAMLN = TMP + LOG (STP * SER) * RETURN END