pro tfun common comp,r,x1,y1,t,cx,cy,ax,ay,fo,sa,clx,cly,sax,say,ashx,ashy,tx,ty common mpsf,nx,ny,np,psfm,wp,xp,yp,gp common done,done,crve,iscr common numb,n common filen,fname,logfil common iter,titer common spher,csph common camer,camera n=256 camera='PCFULL' csph=0. titer=-1 done=0 & crve=1 & iscr=1 print,'filename for data,fname' & fname=' '& read,fname logfil=3 & openw,logfil,fname+'.log' ; Get the PSF from the image at several positions. print,' Input 0 for batch and 1 for interactive input' &inter=0 &read,inter getpsf,inter ; Set starting guess seta,ac nc=n_elements(ac) y=fltarr(nx*ny*np) for ip=0,np-1 do for j=0,ny-1 do y(j*nx+ip*nx*ny)=psfm(*,j,ip) x=fltarr(nx*ny*np) & w=x for ip=0,np-1 do w(ip*nx*ny)=replicate(wp(ip),nx*ny) w=w/(y+0.03*max(y)) sigmaa=replicate(1.,nc) & for ip=0,2*np-1 do sigmaa(ip)=0 for ip=2*np,nc-1 do sigmaa(ip)=1 & for ip=0,2*np-1 do sigmaa(ip)=1 fun,x,ac,f ;yfit=CRVEFIT(X,Y,W,Ac,SIGMAA) psfc=fltarr(nx,ny) for j=0,ny-1 do psfc(0,j)=f(j*ny:(j+1)*ny-1) print,'PSF is in PSFC' stop end