DOUBLE PRECISION FUNCTION DRAN(K) C C RANDOM NUMBER GENERATOR - BASED ON ALGORITHM 266 BY PIKE AND C HILL (MODIFIED BY HANSSON), COMMUNICATIONS OF THE ACM, C VOL. 8, NO. 10, OCTOBER 1965. C C THE SINGLE PRECISION VERSION OF THIS SUBPROGRAM IS INTENDED C FOR USE ON COMPUTERS WITH FIXED POINT WORDLENGTH OF AT C LEAST 29 BITS. IT IS BEST IF THE FLOATING POINT C SIGNIFICAND HAS AT MOST 29 BITS. C C FOLLOWING CODY AND WAITE'S RECOMMENDATION (P .14), WE C PRODUCE A PAIR OF RANDOM NUMBERS AND USE RAN1 + C 2**(-29)*RAN2 IN AN ATTEMPT TO GENERATE ABOUT 58 RANDOM BITS. C INTEGER IY,J,K DATA IY /100001/ C J = K IY = IY * 125 IY = IY - (IY/2796203) * 2796203 DRAN = DBLE(FLOAT(IY)) / 2796203.0D+00 C IY = IY * 125 IY = IY - (IY/2796203) * 2796203 DRAN = DRAN + (DBLE(FLOAT(IY)) / 2796203.0D+00) / 536870912.0D+00 RETURN C ---------- LAST CARD OF DRAN ---------- END