(file) Return to ranecu.f CVS log (file) (dir) Up to [HallC] / pol_hms_single

File: [HallC] / pol_hms_single / ranecu.f (download)
Revision: 1.1.1.1 (vendor branch), Tue Dec 16 13:39:53 2003 UTC (20 years, 9 months ago) by jones
Branch: poltar, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
 Starting Poltar HMS single MC

C
C ----------------------------------------------------------------
C     Subroutine RANECU
C
C     Portable random number generator proposed by l'Ecuyer
C                 in Commun. ACM 31 (1988) 743.
C     slightly modified by F. James, 1988, to generate a vector
C     of pseudorandom numbers RVEC of length LEN.
C     Listing Published in Computer Physics COmm. 60 (1990) 329.
C     Typed in by S. A. Wood, CEBAF 1/23/91 with strong typing.
C ----------------------------------------------------------------
C
      SUBROUTINE RANECU(RVEC,LEN)
      IMPLICIT NONE
C
      REAL RVEC(*)
      INTEGER LEN,ISEED1,ISEED2
      INTEGER I,K,IZ,IS1,IS2
C
      SAVE ISEED1,ISEED2
      DATA ISEED1,ISEED2/12345,67890/
C
      DO I=1,LEN
        K = ISEED1/53668
        ISEED1 = 40014*(ISEED1-K*53668)-K*12211
        IF(ISEED1.LT.0) ISEED1 = ISEED1+2147483563
C
        K = ISEED2/52774
        ISEED2 = 40692*(ISEED2-K*52774)-K*3791
        IF(ISEED2.LT.0) ISEED2 = ISEED2+2147483399
C
        IZ = ISEED1 - ISEED2
        IF(IZ.LT.1) IZ = IZ + 2147483562
C
        RVEC(I) = REAL(IZ)*4.656613E-10
      ENDDO
      RETURN
C
C     Initialize seeds.
C
      ENTRY RECUIN(IS1,IS2)
      ISEED1 = IS1
      ISEED2 = IS2
      RETURN
C
C     Get current seeds.
C
      ENTRY RECUUT(IS1,IS2)
      IS1 = ISEED1
      IS2 = ISEED2
      RETURN
C
      END

Analyzer/Replay: Mark Jones, Documents: Stephen Wood
Powered by
ViewCVS 0.9.2-cvsgraph-1.4.0