# How can i create a random number distribution (FORTRAN)

• Fortran
Hello,

I am working on the two point correlation function in dark matter haloes.

Right now i need to create an array of rundom numbers to compute the estimators.

My question is:

How can i create a random distribution of points in the unit sphere (having in mind its curvature).

I want an array of random numbers 3071 rows, and the random numbers should be in the interval (5,29).

how can i do this?
(and every time i ran it a new distribution of points should arrise.)

Related Programming and Computer Science News on Phys.org
mfb
Mentor
There are many ways to do this, and it will depend on details of your calculation which one is best (I don't understand what your numbers mean).

a) Generate three uniform numbers [-1,1], treat them as coordinates (x,y,z), if the point is inside the sphere consider this as a vector, normalize it and you get coordinates on the sphere.
b) Generate an angle uniformly between 0 and 2pi, generate the second angle with the right probability distribution
... google should find many more methods.

you mean you don't know how to do it? or you don't know how to do it in Fortran? either way this is something a google search should return lots of hits...typically random number generators return a number between 0 and 1 and it is up to you to turn it (proportionally) into the corresponding number within your desired range.

As far as 3071 rows...well, you need to do it 3071 times.

As far as different set every time...well, do not hard set the seed to the random number generator, retrieve the time, instead and use it.

As far as Fortran...google "fortran random" ...it should get hits where you will learn the names of the Fortran intrinsic functions for random number stuff.

AlephZero