      subroutine rann1(moy,std,iseed,ranorm,n,irc)
*
      implicit none
*
*     CAUTION : N MUST BE EVEN
C
      EXTERNAL JMRANF
      DOUBLE PRECISION JMRANF
*
      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.)

CCCCCCCCCCCCCCCCCCC  SX5      
CC on utilise la fonction ranf de JMT donc independante de l'ordinateur
CCCCCCCCCCCCCCCCCCC  SX5       
*
*     Conversion de n en l'entier pair superieur
*
      nn = ((n+1)/2)*2

      
      do i=1,nn
        ranorm(i) = jmranf()
      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
