real function randn m (k) c c + + + PURPOSE + + + c Provides random numbers ranging from 0.0 to 1.0 c c + + + ARGUMENT DECLARATIONS + + + integer k(4) c c + + + ARGUMENT DEFINITIONS + + + c k - Seed for random number generation. c c + + + END SPECIFICATIONS + + + integer i c 10 continue k(4)=3*k(4)+k(2) k(3)=3*k(3)+k(1) k(2)=3*k(2) k(1)=3*k(1) i=k(1)/1000 k(1)=k(1)-i*1000 k(2)=k(2)+i i=k(2)/100 k(2)=k(2)-100*i k(3)=k(3)+i i=k(3)/1000 k(3)=k(3)-i*1000 k(4)=k(4)+i i=k(4)/100 k(4)=k(4)-100*i randn=(((float(k(1))*.001+float(k(2)))*.01+float(k(3)))*.001+ 1 float(k(4)))*.01 c ---- range check: if(randn .le. 0.0 .or. randn .ge. 1.0) goto 10 c return end