# Simple Fortran Program With Random Numbers

• Fortran
• ƒ(x) → ∞

#### ƒ(x) → ∞

I have been busy trying to generate, using FORTRAN's random number generator, random x and y co-ordinates which follow a simple pattern such as x2-100x, but for some reason the FORTRAN compiler prints nothing.

Anybody want to help me with this problem?

Code:
	program quadraticdistribution
implicit none
integer i
integer x,y
real l
integer seed/-23434567/
c     ************************************
c     intialize the random number
l=rand(seed)

c     intialize the x and y values
x=0
y=0

30      do i=1,200
x=int(100*rand(0))
y=int(100*rand(0))
if (x.ge.(y*y-100*y)) goto 30
Write(*,*) x,y
enddo

stop
end

What compiler are you using? A lot of random stuff I've seen is compiler-specific. As a G95 user, I'm not familiar with your approach.

Since you're not getting any output, it's probably the case that your if statement is preventing the following write statement from executing. I added a write statement right after x and y get set, so you can at least get some output.

The main problem, I believe, is your goto in the middle of your loop. I changed the logic in your if statement so that if x < y^2 - 100y, the code prints the values of x and y. If x >= y^2 - 100y, the code doesn't print anything.
Code:
	program quadraticdistribution
implicit none
integer i
integer x,y
real l
integer seed/-23434567/
c     ************************************
c     intialize the random number
l=rand(seed)

c     intialize the x and y values
x=0
y=0

do i=1,200
x=int(100*rand(0))
y=int(100*rand(0))
write(*, *) x, y   ; for debugging purposes
if (x .lt. (y*y-100*y))
Write(*,*) x,y
endif
enddo

stop
end

If y lies between 0 and 100, y^2-100*y is always negative, and the condition x>y^2-100*y is always true.