      subroutine rndnorm(znorm)
C Subroutine to draw normal variate
      implicit real*8(a-h,o-z)
      double precision cumnorm(625,2)
      common /normdta/ cumnorm,ncum
C Draw a uniform variate
    5 draw = rand()
C If the variate is below our table redraw
      if (draw.lt.0.0002.or.draw.gt.0.9998) goto 5
C Lookup and interpolation with the cumlative normal
      do 10 i=2,ncum-1
         if (draw.lt.cumnorm(i,1)) then
           znorm = cumnorm(i-1,2) + (draw-cumnorm(i-1,1))/(cumnorm(i,1)-
     1             cumnorm(i-1,1))*(cumnorm(i,2)-cumnorm(i-1,2))
           goto 20
         endif 
   10 continue
      goto 5
   20 continue
      end   