random_Cauchy Function

function random_Cauchy() result(fn_val)

Arguments

None

Return Value real


Source Code

FUNCTION random_Cauchy() RESULT(fn_val)
  !     Generate a random deviate from the standard Cauchy distribution
  REAL     :: fn_val
  !     Local variables
  REAL     :: v(2)
  DO
     CALL RANDOM_NUMBER(v)
     v = two*(v - half)
     IF (ABS(v(2)) < vsmall) CYCLE               ! Test for zero
     IF (v(1)**2 + v(2)**2 < one) EXIT
  END DO
  fn_val = v(1) / v(2)
  RETURN
END FUNCTION random_Cauchy