Environmental Engineering Reference
In-Depth Information
Calculate random numbers
*************************
Rnum(1)=Iseed*DMax
Write(*,931) Rnum(1),Iseed
Do 10 i=2,num
Rnum(i)=cong16807(Iseed)
if (num.le.100) write(*,931) Rnum(i),Iseed
931 format(f10.5,i15)
10 continue
Rave=Rnum(1)
R2Ave=Rnum(1)**2
Do 20 i=2,num
Correl=Correl+Rnum(i)*Rnum(i-1)
Rave=Rave+Rnum(i)
20 R2Ave=R2Ave+Rnum(i)**2
Rave=Rave/num
SDev=Sqrt((R2Ave/num-Rave**2)/(num-1))
Correl=Correl/(num-1)-Rave*RAve
*******
Output
*******
write(*,932) Rave,SDev,Correl
932 format('Ave. random number =',F10.6, ' +/-,' F10.6,
1/'nn-correlation =' F10.6)
write(1,932) Rave,SDev,Correl
999
format(f12.8)
close (1)
stop
end
FUNCTION Cong16807(ISeed)
******************************************************
This is a simple congruential random number generator
******************************************************
INTEGER ISeed,IMod
REAL*8 RMod,PMod,DMax
RMod = DBLE(ISeed)
PMod = 2147483647.0D0
DMax = 1.0D0/PMod
RMod = RMod*16807.0D0
IMod = RMod*DMax
RMod = RMod-PMod*IMod
Search WWH ::




Custom Search