      DOUBLE PRECISION FUNCTION DRAND (SEED)

C ================================================================
C
C     RANDOM NUMBER GENERATOR    GGL
C     original reference for algorithm
C     P. Lewis, A. Goodman, J. Miller,IBM Sys. J., 2, 136 (1969)
C ================================================================

      INTEGER SEED
      DOUBLE PRECISION   DS, D2, DINIT
      PARAMETER ( DINIT = 667790.0D0 )
      SAVE DS, D2
      DATA               DS/DINIT/
      DATA               D2/2147483647.0D0/

      IF ( SEED .NE. 0 ) DS = SEED
      DS = DMOD(16807.D0*DS,D2)                                            
      DRAND = DS/D2

      RETURN                                                                   
      END

