94      SUBROUTINE slarnv( IDIST, ISEED, N, X )
 
  112      parameter( one = 1.0e+0, two = 2.0e+0 )
 
  114      parameter( lv = 128 )
 
  116      parameter( twopi = 6.28318530717958647692528676655900576839e+0 )
 
  119      INTEGER            I, IL, IL2, IV
 
  125      INTRINSIC          cos, log, min, sqrt
 
  132      DO 40 iv = 1, n, lv / 2
 
  133         il = min( lv / 2, n-iv+1 )
 
  134         IF( idist.EQ.3 ) 
THEN 
  143         CALL slaruv( iseed, il2, u )
 
  145         IF( idist.EQ.1 ) 
THEN 
  152         ELSE IF( idist.EQ.2 ) 
THEN 
  157               x( iv+i-1 ) = two*u( i ) - one
 
  159         ELSE IF( idist.EQ.3 ) 
THEN 
  164               x( iv+i-1 ) = sqrt( -two*log( u( 2*i-1 ) ) )*
 
  165     $                       cos( twopi*u( 2*i ) )
 
 
subroutine slarnv(idist, iseed, n, x)
SLARNV returns a vector of random numbers from a uniform or normal distribution.
subroutine slaruv(iseed, n, x)
SLARUV returns a vector of n random real numbers from a uniform distribution.