File: GAUSS.FT of Tape: Various/ETH/eth11-1
(Source file text) 

C     ..................................................................
C
C        SUBROUTINE GAUSS
C
C        PURPOSE
C           COMPUTES A NORMALLY DISTRIBUTED RANDOM NUMBER WITH A GIVEN
C           MEAN AND STANDARD DEVIATION
C
C        USAGE
C           CALL GAUSS(IX,S,AM,V)
C
C        DESCRIPTION OF PARAMETERS
C           IX -IX MUST CONTAIN AN ODD INTEGER NUMBER 
C               LESS THAN 32768 ON THE FIRST ENTRY TO GAUSS. THEREAFTER
C               IT WILL CONTAIN A UNIFORMLY DISTRIBUTED INTEGER RANDOM
C               NUMBER GENERATED BY THE SUBROUTINE FOR USE ON THE NEXT
C               ENTRY TO THE SUBROUTINE.
C           S  -THE DESIRED STANDARD DEVIATION OF THE NORMAL
C               DISTRIBUTION.
C           AM -THE DESIRED MEAN OF THE NORMAL DISTRIBUTION
C           V  -THE VALUE OF THE COMPUTED NORMAL RANDOM VARIABLE
C
C        REMARKS
C           THIS SUBROUTINE USES RANDU WHICH IS MACHINE SPECIFIC
C
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C           RANDU
C
C        METHOD
C           USES 12 UNIFORM RANDOM NUMBERS TO COMPUTE NORMAL RANDOM
C           NUMBERS BY CENTRAL LIMIT THEOREM. THE RESULT IS THEN
C           ADJUSTED TO MATCH THE GIVEN MEAN AND STANDARD DEVIATION.
C           THE UNIFORM RANDOM NUMBERS COMPUTED WITHIN THE SUBROUTINE
C           ARE FOUND BY THE POWER RESIDUE METHOD.
C
C     ..................................................................
C
      SUBROUTINE GAUSS(IX,S,AM,V)
      A=0.0
      DO 50 I=1,12
      CALL RANDU(IX,IY,Y)
      IX=IY
   50 A=A+Y
      V=(A-6.0)*S+AM
      RETURN
      END
C