      subroutine rann1(moy,std,iseed,ranorm,n,irc)
*
      implicit none
*
*     CAUTION : N MUST BE EVEN
*
      real moy,std
      integer iseed,n,irc
      real ranorm(n)
* 
      integer nn 
      real rr,theta
      real pi
      integer i
      real temp1,temp2
*
      pi = acos(-1.)
      call ranset(iseed)
*
*     Conversion de n en l'entier pair superieur
*
      nn = ((n+1)/2)*2
*
C     Boucle d'initialisation des ranf dans un tableau intermediaire
*
      do i=1,nn
        ranorm(i) = ranf()
      end do

C    On en deduit maintenant un tableau de nombres gaussiens
      do i=1,nn/2
        temp1 = ranorm(i)
        temp2 = ranorm(i+nn/2)
        rr = sqrt(-2.*log(temp1))
        Theta = 2*PI*temp2
        ranorm(i)      = (rr * cos(Theta) + moy) * std
        ranorm(i+nn/2) = (rr * sin(Theta) + moy) * std
      end do
*
      end
