5 * Revision 1.1.1.1 1995/10/24 10:20:03 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.44 by S.Giani
15 *=== gamrn ============================================================*
17 FUNCTION GAMRN(ALAM,ETA)
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
24 C********************************************************************
26 C RANDOM NUMBER SELECTION FROM GAMMA DISTRIBUTION
27 C F(X) = ALAM**ETA*X**(ETA-1)*EXP(-ALAM*X) / GAM(ETA)
29 C********************************************************************
34 IF (F .EQ. 0.D0) GO TO 100
38 IF (NCOU.GE.11) GO TO 100
39 IF (R .LT. F/(F + 2.718281828459045D0)) GO TO 20
41 YYY = LOG(RNDM(1)+1.0D-38)/F
42 IF (ABS(YYY) .GT. 50.D0) GO TO 100
45 IF (LOG(RNDM(1) + 1.0D-38) .GT. -Y) GO TO 10
50 Y = 1.D0 - LOG(RNDM(1) + 1.0D-38)
51 IF (RNDM(2) .GT. Y**(F-1.D0)) GO TO 10
52 50 IF (N .EQ. 0) GO TO 150
58 Y = Y - LOG(Z + 1.0D-38)