File indexing completed on 2025-08-05 08:15:46
0001
0002
0003
0004 FUNCTION RLU(IDUM)
0005
0006
0007
0008 COMMON/LUDATR/MRLU(6),RRLU(100)
0009 SAVE /LUDATR/
0010 EQUIVALENCE (MRLU1,MRLU(1)),(MRLU2,MRLU(2)),(MRLU3,MRLU(3)),
0011 &(MRLU4,MRLU(4)),(MRLU5,MRLU(5)),(MRLU6,MRLU(6)),
0012 &(RRLU98,RRLU(98)),(RRLU99,RRLU(99)),(RRLU00,RRLU(100))
0013
0014
0015 IF(MRLU2.EQ.0) THEN
0016 IJ=MOD(MRLU1/30082,31329)
0017 KL=MOD(MRLU1,30082)
0018 I=MOD(IJ/177,177)+2
0019 J=MOD(IJ,177)+2
0020 K=MOD(KL/169,178)+1
0021 L=MOD(KL,169)
0022 DO 110 II=1,97
0023 S=0.
0024 T=0.5
0025 DO 100 JJ=1,24
0026 M=MOD(MOD(I*J,179)*K,179)
0027 I=J
0028 J=K
0029 K=M
0030 L=MOD(53*L+1,169)
0031 IF(MOD(L*M,64).GE.32) S=S+T
0032 100 T=0.5*T
0033 110 RRLU(II)=S
0034 TWOM24=1.
0035 DO 120 I24=1,24
0036 120 TWOM24=0.5*TWOM24
0037 RRLU98=362436.*TWOM24
0038 RRLU99=7654321.*TWOM24
0039 RRLU00=16777213.*TWOM24
0040 MRLU2=1
0041 MRLU3=0
0042 MRLU4=97
0043 MRLU5=33
0044 ENDIF
0045
0046
0047 130 RUNI=RRLU(MRLU4)-RRLU(MRLU5)
0048 IF(RUNI.LT.0.) RUNI=RUNI+1.
0049 RRLU(MRLU4)=RUNI
0050 MRLU4=MRLU4-1
0051 IF(MRLU4.EQ.0) MRLU4=97
0052 MRLU5=MRLU5-1
0053 IF(MRLU5.EQ.0) MRLU5=97
0054 RRLU98=RRLU98-RRLU99
0055 IF(RRLU98.LT.0.) RRLU98=RRLU98+RRLU00
0056 RUNI=RUNI-RRLU98
0057 IF(RUNI.LT.0.) RUNI=RUNI+1.
0058 IF(RUNI.LE.0.OR.RUNI.GE.1.) GOTO 130
0059
0060
0061 MRLU3=MRLU3+1
0062 IF(MRLU3.EQ.1000000000) THEN
0063 MRLU2=MRLU2+1
0064 MRLU3=0
0065 ENDIF
0066 RLU=RUNI
0067
0068 RETURN
0069 END