1      DOUBLE PRECISION FUNCTION ranf()
2C**********************************************************************
3C
4C     DOUBLE PRECISION FUNCTION RANF()
5C                RANDom number generator as a Function
6C
7C     Returns a random floating point number from a uniform distribution
8C     over 0 - 1 (endpoints of this interval are not returned) using the
9C     current generator
10C
11C     This is a transcription from Pascal to Fortran of routine
12C     Uniform_01 from the paper
13C
14C     L'Ecuyer, P. and Cote, S. "Implementing a Random Number Package
15C     with Splitting Facilities." ACM Transactions on Mathematical
16C     Software, 17:98-111 (1991)
17C
18C**********************************************************************
19C     .. External Functions ..
20      INTEGER ignlgi
21      EXTERNAL ignlgi
22C     ..
23C     .. Executable Statements ..
24C
25C     4.656613057E-10 is 1/M1  M1 is set in a data statement in IGNLGI
26C      and is currently 2147483563. If M1 changes, change this also.
27C
28      ranf = ignlgi()*4.656613057D-10
29      RETURN
30
31      END
32