COMMON /CSEED/ ISEED real class(13) iseed=41 do i=1,13 class(i)=0.0 end do do i=1,100000 call GRNF(X) if(x.lt.-5.5) class(1)=class(1)+1.0 if(x.lt.-4.5.and.x.gt.-5.5) class(2)=class(2)+1.0 if(x.lt.-3.5.and.x.gt.-4.5) class(3)=class(3)+1.0 if(x.lt.-2.5.and.x.gt.-3.5) class(4)=class(4)+1.0 if(x.lt.-1.5.and.x.gt.-2.5) class(5)=class(5)+1.0 if(x.lt.-0.5.and.x.gt.-1.5) class(6)=class(6)+1.0 if(x.lt.0.5.and.x.gt.-0.5) class(7)=class(7)+1.0 if(x.lt.1.5.and.x.gt.0.5) class(8)=class(8)+1.0 if(x.lt.2.5.and.x.gt.1.5) class(9)=class(9)+1.0 if(x.lt.3.5.and.x.gt.2.5) class(10)=class(10)+1.0 if(x.lt.4.5.and.x.gt.3.5) class(11)=class(11)+1.0 if(x.lt.5.5.and.x.gt.4.5) class(12)=class(12)+1.0 if(x.gt.5.5) class(13)=class(13)+1.0 end do x=-6.0 do i=1,13 write(41,*)x,class(i)/100000. x=x+1.0 end do stop end c SUBROUTINE GRNF(X) COMMON /CSEED/ ISEED pi = acos(-1.0) 10 x1 = 12.0*(RANF() - 0.5) y1 = RANF() w1 = exp(-0.5*x1*x1)/sqrt(2.0*pi) if(y1.gt.w1) goto 10 x=x1 RETURN END C FUNCTION RANF() DATA IA/16807/,IC/2147483647/,IQ/127773/,IR/2836/ COMMON /CSEED/ ISEED IH = ISEED/IQ IL = MOD(ISEED,IQ) IT = IA*IL-IR*IH IF(IT.GT.0) THEN ISEED = IT ELSE ISEED = IC+IT END IF RANF = ISEED/FLOAT(IC) RETURN END