SUBROUTINE mrqcof(x,y,sig,ndata,a,ia,ma,alpha,beta,nalp,chisq, *funcs) INTEGER ma,nalp,ndata,ia(ma),MMAX REAL chisq,a(ma),alpha(nalp,nalp),beta(ma),sig(ndata),x(ndata), *y(ndata) EXTERNAL funcs PARAMETER (MMAX=20) INTEGER mfit,i,j,k,l,m REAL dy,sig2i,wt,ymod,dyda(MMAX) mfit=0 do 11 j=1,ma if (ia(j).ne.0) mfit=mfit+1 11 continue do 13 j=1,mfit do 12 k=1,j alpha(j,k)=0. 12 continue beta(j)=0. 13 continue chisq=0. do 16 i=1,ndata call funcs(x(i),a,ymod,dyda,ma) sig2i=1./(sig(i)*sig(i)) dy=y(i)-ymod j=0 do 15 l=1,ma if(ia(l).ne.0) then j=j+1 wt=dyda(l)*sig2i k=0 do 14 m=1,l if(ia(m).ne.0) then k=k+1 alpha(j,k)=alpha(j,k)+wt*dyda(m) endif 14 continue beta(j)=beta(j)+dy*wt endif 15 continue chisq=chisq+dy*dy*sig2i 16 continue do 18 j=2,mfit do 17 k=1,j-1 alpha(k,j)=alpha(j,k) 17 continue 18 continue return END C (C) Copr. 1986-92 Numerical Recipes Software .