--- 
:name: dlaruv
:md5sum: 5f925de019c10838c63b3fb8bb460f32
:category: :subroutine
:arguments: 
- iseed: 
    :type: integer
    :intent: input/output
    :dims: 
    - "4"
- n: 
    :type: integer
    :intent: input
- x: 
    :type: doublereal
    :intent: output
    :dims: 
    - MAX(1,n)
:substitutions: {}

:fortran_help: "      SUBROUTINE DLARUV( ISEED, N, X )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  DLARUV returns a vector of n random real numbers from a uniform (0,1)\n\
  *  distribution (n <= 128).\n\
  *\n\
  *  This is an auxiliary routine called by DLARNV and ZLARNV.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  ISEED   (input/output) INTEGER array, dimension (4)\n\
  *          On entry, the seed of the random number generator; the array\n\
  *          elements must be between 0 and 4095, and ISEED(4) must be\n\
  *          odd.\n\
  *          On exit, the seed is updated.\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The number of random numbers to be generated. N <= 128.\n\
  *\n\
  *  X       (output) DOUBLE PRECISION array, dimension (N)\n\
  *          The generated random numbers.\n\
  *\n\n\
  *  Further Details\n\
  *  ===============\n\
  *\n\
  *  This routine uses a multiplicative congruential method with modulus\n\
  *  2**48 and multiplier 33952834046453 (see G.S.Fishman,\n\
  *  'Multiplicative congruential random number generators with modulus\n\
  *  2**b: an exhaustive analysis for b = 32 and a partial analysis for\n\
  *  b = 48', Math. Comp. 189, pp 331-344, 1990).\n\
  *\n\
  *  48-bit integers are stored in 4 integer array elements with 12 bits\n\
  *  per element. Hence the routine is portable across machines with\n\
  *  integers of 32 bits or more.\n\
  *\n\
  *  =====================================================================\n\
  *\n"
