A food for thought for the real programmers.
What can you infer from the following codes?
program mcint
write{*,1}
format{' enter number of sampling points to be used' }
read (*,*)n
write {*,2}
format (' enter random seed ')
read {*,*} idum
sum=0.0
sum2=0.0
do 10 i = 1,n
x=10.0*rand {idum)
y=10.0*rand {idum)
z=10.0*rand (idum}
fx=x**2*exp(x}
fy=y**2*exp(y}
fz=z**2*exp(z}
fun=fx*fy*fz
sum=sum+fun
sum2=sum2+fun*fun
value=1000.0*sum/n
unc=1000.0*sqrt({{sum2/n}{sum/n}**2)/n}
write (*,11) value, unc
format {' Integral value: ', f10.5,' +/', f10.5}
stop
end
function rand(ix}
integer a,p,ix,b15,b16,xhi,xalo,leftlo,fhi,k
data a/16807/,b15/32768/,b16/65536/,p/2147483647
xhi= ix/b16
xalo= (ixxhi*b16}*a
leftlo= xalo/b16
fhi= xhi*a+leftlo
k=fhi/b15]
ix= ({{xaloleftlo*b16)p)+ (fhik*b15}*b16}+k
if(ix.lt.0}ix=ix+p
rand= float(ix)*4.656612875e10
return
end
