1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
DOUBLE PRECISION FUNCTION gennor(av,sd)
C**********************************************************************
C
C DOUBLE PRECISION FUNCTION GENNOR( AV, SD )
C
C GENerate random deviate from a NORmal distribution
C
C
C Function
C
C
C Generates a single random deviate from a normal distribution
C with mean, AV, and standard deviation, SD.
C
C
C Arguments
C
C
C AV --> Mean of the normal distribution.
C DOUBLE PRECISION AV
C
C SD --> Standard deviation of the normal distribution.
C DOUBLE PRECISION SD
C JJV (SD >= 0)
C
C GENNOR <-- Generated normal deviate.
C DOUBLE PRECISION GENNOR
C
C
C Method
C
C
C Renames SNORM from TOMS as slightly modified by BWB to use RANF
C instead of SUNIF.
C
C For details see:
C Ahrens, J.H. and Dieter, U.
C Extensions of Forsythe's Method for Random
C Sampling from the Normal Distribution.
C Math. Comput., 27,124 (Oct. 1973), 927 - 937.
C
C
C**********************************************************************
C .. Scalar Arguments ..
DOUBLE PRECISION av,sd
C ..
C .. External Functions ..
DOUBLE PRECISION snorm
EXTERNAL snorm
C ..
C .. Executable Statements ..
C JJV added check to ensure SD >= 0.0
10 gennor = sd*snorm() + av
RETURN
END
|