procedure qdpsap( buff1, buff2, nx, ny, dx, dy, peakmin, peakmax, outv, szoutv, nstr) int nx int ny real buff1[nx,ny] real buff2[nx,ny] int dx int dy real peakmin real peakmax int szoutv double outv[szoutv] int nstr int mxnstr # int x int y int xx int yy real pixel real neighbor bool bingo int count bool ok double sgnl1 int sgnl1_n double esgnl1 double bkg1 int bkg1_n double ebkg1 double area1 double flux1 double mg1 double emg1 double cmg1 double sgnl2 int sgnl2_n double esgnl2 double bkg2 int bkg2_n double ebkg2 double area2 double flux2 double mg2 double emg2 double cmg2 double xd double yd int fltrnm int index # begin nstr = 0 mxnstr = szoutv/22 do y = 6, (ny-5) { do x = 6, (nx-5) { pixel = buff1[x,y] if ( (pixel>=peakmin) && (pixel pixel ) { bingo = false } else if (neighbor == pixel) { if ( (xx!=x) || (yy!=y) ) { if (((xx<=x)&&(yyx)&&(yy 0) { mg1 = -2.5*log10(flux1) emg1 = 1.0857*(esgnl1/sgnl1) } # check magnitude flux1 = area1*(bkg1+ebkg1) cmg1 = 99.999 if (flux1 > 0) cmg1 = -2.5*log10(flux1) ### 2nd aperture ############################################################## # signal call qds2( buff2, nx, ny, x, y, sgnl2, sgnl2_n) if (sgnl2 < 0 ) { sgnl2 = 0 esgnl2 = 0 } else { esgnl2 = sqrt(sgnl2) # assumes *only* photon noise } # background call qdb5( buff2, nx, ny, x, y, bkg2, bkg2_n) if (bkg2 < 0 ) { bkg2 = 0 ebkg2 = 0 } else { ebkg2 = sqrt(bkg2) # assumes *only* photon noise } # magnitude area2 = sgnl2_n flux2 = sgnl2 - (bkg2*area2) mg2 = 99.999 emg2 = 99.999 if (flux2 > 0) { mg2 = -2.5*log10(flux2) emg2 = 1.0857*(esgnl2/sgnl2) } # check magnitude flux2 = area2*(bkg2+ebkg2) cmg2 = 99.999 if (flux2 > 0) cmg2 = -2.5*log10(flux2) ### results ################################################################### ok = (mg1