C LEVMA3    SOURCE    CHAT      05/01/13    01:15:28     5004
      subroutine levma3(x,y,sig,ndata,a,ma,alpha,beta,nalp,
     &     ytest,dyda,chisq)
c
c appele par mrqmin pour evaluer la matrice alpha et le vecteur beta
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
      parameter (mmax=20)
      real*8 x(ndata),y(ndata),sig(ndata),alpha(nalp,nalp),beta(ma),
     &   dyda(ma*ndata),a(ma),ytest(ndata)

* initialise alpha et beta (symetriques)
      do 12 j=1,ma
         do 11 k=1,j
           alpha(j,k) = 0.
 11      continue
         beta(j) = 0.
 12   continue

      chisq = 0.
* somme sur les donnees
      do 15 i=1,ndata
co         call funcs(x(i),a,ymod,dyda,ma)
         sig2i = 1./sig(i)/sig(i)
co         dy = y(i) - ymod
         dy = y(i) - ytest(i)
         do 14 j=1,ma
co           wt = dyda(lista(j))*sig2i
           wt = dyda(ma*(i-1)+j) * sig2i
cc           write(6,*) i,lista(j), wt
           do 13 k=1,j
co             alpha(j, k) = alpha(j, k) + (wt * dyda(lista(k)))
             alpha(j,k) = alpha(j,k) + ( wt*dyda(ma*(i-1)+k) )
 13        continue
           beta(j) = beta(j) + (dy * wt)
 14      continue
* valeur de chi²
         chisq = chisq + (dy*dy*sig2i)
 15   continue

      do 17 j=2,ma
        do 16 k=1,j-1
          alpha(k,j) = alpha(j,k)
 16     continue
 17   continue
      return
      end


