Viewing contents of file '../idllib/contrib/icur/fffitstat.pro'
;***************************************************************************
pro fffitstat,chisq,iflag,bsca
COMMON CFT,X,Y,SIG,E
COMMON CURVE,A,EA,IFIXT
COMMON PLCR,YF
common ffits,lu4
common icurunits,xunits,yunits,title
if n_elements(lu4) eq 0 then lu4=-1
n=n_elements(x)
nterms=n_elements(a)
nlines=(nterms-3)/3
L1=1
CASE 1 OF
nterms le 3: printf,lu4,'* No lines fit'
(NTERMS gt 3) and (nterms le 6): begin ;1 line
printf,lu4,'* BEST FIT LINE INTENSITY=', $
string(a(3),'(G10.3)'),' +/-',string(ea(3),'(g10.3)')
print,' BEST FIT LINE INTENSITY=',a(3),' +/-',Ea(3)
IF NTERMS ge 5 then begin
printf,lu4,'* FIT BIN =',a(4),' +/-',ea(4),' ; GIVEN BIN',bsca
print,' FIT BIN =',a(4),' +/-',ea(4),' ; GIVEN BIN',bsca
IF NTERMS ne 5 then begin
printf,lu4,'* FIT HWHM=',a(5),' +/-',ea(5),' BINS'
print,' FIT HWHM=',a(5),' +/-',ea(5),' BINS'
endif ;ne 5
endif ;ge 5
end
nterms gt 6: begin ;2 or more lines
while nlines ge 2 do begin
l2=l1+1
k1=l1*3
k2=l2*3
printf,lu4,'* LINES',l1,' AND',l2
printf,lu4,'* LINE AMPLITUDES:', $
string(a(k1),'(G10.3)'),' +/-',string(ea(k1),'(g10.3)'),' ', $
string(a(k2),'(G10.3)'),' +/-',string(ea(k2),'(g10.3)')
printf,lu4,'* LINE POSITIONS :', $
string(a(k1+1),'(G10.3)'),' +/-',string(ea(k1+1),'(g10.3)'),' ', $
string(a(k2+1),'(G10.3)'),' +/-',string(ea(k2+1),'(g10.3)')
printf,lu4,'* LINE HWHMS :', $
string(a(k1+2),'(G10.3)'),' +/-',string(ea(k1+2),'(g10.3)'),' ', $
string(a(k2+2),'(G10.3)'),' +/-',string(ea(k2+2),'(g10.3)')
nlines=nlines-2
l1=l1+2
endwhiLE
if nlines eq 1 then begin
l2=l1+1
k1=l1*3
k2=l2*3
printf,lu4,'* LINE ',l1
printf,lu4,'* LINE AMPLITUDE:',a(k1),' +/-',ea(k1)
printf,lu4,'* LINE POSITION:',a(k1+1),' +/-',ea(k1+1)
printf,lu4,'* LINE HWHM:',a(k1+2),' +/-',ea(k1+2)
endif
end
else:
endcase
;
schs=string(chisq,'(F8.3)')
printf,lu4,'* CHI-SQUARE per degree of freedom:',schs
CHISQ=CHISQ*FLOAT(N-NTERMS)
sflag=string(iflag,'(I3)')
sn=string(n,'(I4)')
snt=string(nterms,'(I3)')
schs=string(chisq,'(F8.3)')
printf,lu4,'* Flag= ',sflag,' Chi**2=',schs,' Data points= ',sn,' Free parameters= ',snt
print,'* Flag= ',sflag,' Chi**2=',schs,' Data points= ',sn,' Free parameters= ',snt
;
NPL=6
imax=fix((nterms-1)/NPL)
SNPL=STRTRIM(NPL,2)
SF='G11.4'
fmt1='("",A,"A:",'+SNPL+'(" ",'+SF+'))'
fmt2='(" EA:",'+SNPL+'(" ",'+SF+'))'
for i=0,imax do begin
s=string(i*npl,'(i2)')+'-'+string((i*npl+npl-1)<(nterms-1),'(i2)')+' '
printf,lu4,S,a(i*NPL:(nterms-1)<(i*NPL+NPL-1)),format=fmt1
printf,lu4,ea(i*NPL:(nterms-1)<(i*NPL+NPL-1)),format=fmt2
; printf,lu4,'* ',S,' A:', a(i*NPL:(nterms-1)<(i*NPL+NPL-1))
; printf,lu4,'* EA:',ea(i*NPL:(nterms-1)<(i*NPL+NPL-1))
endfor
;
RETURN
END