Files
piscal/dataassim/math/numrec/f77_sources/chixy.for
T
2016-02-03 18:52:05 +00:00

33 lines
802 B
Fortran

FUNCTION chixy(bang)
REAL chixy,bang,BIG
INTEGER NMAX
PARAMETER (NMAX=1000,BIG=1.E30)
INTEGER nn,j
REAL xx(NMAX),yy(NMAX),sx(NMAX),sy(NMAX),ww(NMAX),aa,offs,avex,
*avey,sumw,b
COMMON /fitxyc/ xx,yy,sx,sy,ww,aa,offs,nn
b=tan(bang)
avex=0.
avey=0.
sumw=0.
do 11 j=1,nn
ww(j)=(b*sx(j))**2+sy(j)**2
if(ww(j).lt.1./BIG) then
ww(j)=BIG
else
ww(j)=1./ww(j)
endif
sumw=sumw+ww(j)
avex=avex+ww(j)*xx(j)
avey=avey+ww(j)*yy(j)
11 continue
avex=avex/sumw
avey=avey/sumw
aa=avey-b*avex
chixy=-offs
do 12 j=1,nn
chixy=chixy+ww(j)*(yy(j)-aa-b*xx(j))**2
12 continue
return
END