diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /noao/rv/zzdebug.x | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/rv/zzdebug.x')
-rw-r--r-- | noao/rv/zzdebug.x | 569 |
1 files changed, 569 insertions, 0 deletions
diff --git a/noao/rv/zzdebug.x b/noao/rv/zzdebug.x new file mode 100644 index 00000000..a8ae9656 --- /dev/null +++ b/noao/rv/zzdebug.x @@ -0,0 +1,569 @@ +include <error.h> +include <gio.h> +include <gset.h> +include "rvpackage.h" +include "rvflags.h" +include "rvcomdef.h" + +.help debugging +.nf ___________________________________________________________________________ +RV_DEBUG - Debugging facility. + + A debugging facility has been set up in the RV package that is des- +igned to be hidden from ordinary users. Several layers of debugging are pro- +vided, to write info on various operations of the package. These layers are +defined as follows: + + Level: Action: + ------ ------- + 0 Simple procedure trace + 1 Data cache and flag output + 2 CCF and line fitting output + 3 Velocity computation and correction output + 4 FFT information + +These layers are set up such that (e.g.) a level 3 debug flag will include all +information up to and including level 3 output. + +.endhelp _____________________________________________________________________ + + +# RV_DEBUG - Debugging utility commands. + +procedure rv_debug (rv, cmdstr) + +pointer rv #I RV struct pointer +char cmdstr[SZ_LINE] #I Command line + +pointer sp, cmd, buf +int strdic() + +begin + call smark (sp) + call salloc (cmd, SZ_LINE, TY_CHAR) + call salloc (buf, SZ_LINE, TY_CHAR) + + call sscan (cmdstr) + call gargwrd (Memc[cmd], SZ_LINE) + + # Unpack the keyword from the string and look it up in the + # dictionary. Switch on command and call the appropriate routines. + switch (strdic(Memc[cmd], Memc[cmd], SZ_FNAME, DEBUG_KEYWORDS)) { + case DEBUG_DEBUG: + # Toggle the debugging flag + call cmd_dbg_debug (rv, NULL) + + case DEBUG_D_ON: + # Toggle the debugging flag + call cmd_dbg_debug (rv, YES) + + case DEBUG_D_OFF: + # Toggle the debugging flag + call cmd_dbg_debug (rv, NO) + + case DEBUG_FILE: + # Set the debug file name for output + call cmd_dbg_file (rv) + + case DEBUG_LEVEL: + # Set the debug level for output + call cmd_dbg_level (rv) + + case DEBUG_OTHER: + # Compare other algorithims? + call cmd_dbg_other (rv) + + default: + call rv_errmsg ("rv_debug: invalid case label.") + } + + call sfree (sp) +end + + +procedure cmd_dbg_file (rv) + +pointer rv #I RV struct pointer + +pointer sp, buf, open() +errchk open + +begin + call smark (sp) + call salloc (buf, SZ_LINE, TY_CHAR) + + call gargstr (Memc[buf], SZ_FNAME) + if (Memc[buf] != EOS) { + call realloc (DBG_FNAME(rv), SZ_FNAME, TY_CHAR) + call strcpy (Memc[buf+1], DEBUG_FNAME(rv), SZ_FNAME) + if (DBG_FD(rv) != NULL && DBG_FD(rv) != STDOUT) + call close (DBG_FD(rv)) + iferr (DBG_FD(rv) = open (DEBUG_FNAME(rv), APPEND, TEXT_FILE)) + call error (0, "Error opening debug file.") + call dbg_init (rv, DBG_FD(rv)) + + } else { + call printf ("Debugging filename = '%s'\n") + if (DBG_FNAME(rv) == NULL) + call pargstr ("") + else + call pargstr (DEBUG_FNAME(rv)) + } + + call sfree (sp) +end + + +procedure cmd_dbg_debug (rv, flag) + +pointer rv #I RV struct pointer +int flag #I Debugging state + +bool bval, itob() +int nscan(), btoi() + +begin + switch (flag) { + case YES: + DBG_DEBUG(rv) = YES + if (DBG_FD(rv) == NULL) + DBG_FD(rv) = STDOUT + case NO: + DBG_DEBUG(rv) = NO + default: + call gargb (bval) + if (nscan() == 2) { + DBG_DEBUG(rv) = btoi (bval) + } else { + call printf ("Debugging flag = %b\n") + call pargb (itob(DBG_DEBUG(rv))) + } + } +end + + +procedure cmd_dbg_level (rv) + +pointer rv #I RV struct pointer + +int nscan() +int ival + +begin + call gargi (ival) + if (nscan() == 2) { + DBG_LEVEL(rv) = ival + } else { + call printf ("Debugging level = %d\n") + call pargi (DBG_LEVEL(rv)) + } +end + + +procedure cmd_dbg_other (rv) + +pointer rv #I RV struct pointer + +int nscan() +int ival + +begin + call gargi (ival) + if (nscan() == 2) { + DBG_OTHER(rv) = ival + } else { + call printf ("Debugging other = %b\n") + call pargi (DBG_OTHER(rv)) + } +end + + +procedure d_printf (fd, str) + +pointer fd # Debug file descriptor +char str[SZ_LINE] # Format string + +begin + if (fd == NULL) + return + else if (fd == STDOUT) + call printf (str) + else if (fd == STDERR) + call eprintf (str) + else + call fprintf (fd, str) + + call flush (fd) +end + + +procedure d_flush (fd) + +pointer fd + +begin + if (fd != NULL) + call flush (fd) +end + + +procedure dbg_init (rv, fd) + +pointer rv, fd + +pointer sp, system_id + +begin + if (fd == NULL) + return + + call smark (sp) + call salloc (system_id, SZ_LINE, TY_CHAR) + + call sysid (Memc[system_id], SZ_LINE) + call d_printf (fd, "\n\t-->%s<--\n\n") + call pargstr (Memc[system_id]) + + call d_printf (fd, "Task: `fxcor'\n\n") + call d_printf (fd, "\tObject = '%s'/%4d\t\tTemplate = '%s'/%4d\n") + call pargstr (IMAGE(rv)); call pargi (RV_NPTS(rv)) + call pargstr (RIMAGE(rv)); call pargi (RV_RNPTS(rv)) + call d_printf (fd, "%12t=> '%s'%42t=> '%s'\n\n") + call pargstr (OBJNAME(rv)); call pargstr (TEMPNAME(rv)) + + call flush (fd) + call sfree (sp) +end + + +# OP_DEBUG - Read the _RVDEBUG parameters. + +procedure op_debug (rv) + +pointer rv #I RV struct pointer + +pointer db, sp, bp, ks +pointer clopset(), open() +bool clgpsetb(), streq() +int clgpseti(), btoi() +errchk clopset, open + +begin + if (DBG_FD(rv) != NULL && DBG_FD(rv) != STDOUT && DBG_FD(rv) != STDERR) + return + + call smark (sp) + call salloc (bp, SZ_FNAME, TY_CHAR) + call salloc (ks, SZ_FNAME, TY_CHAR) + + db = clopset ("rvdebug") + + DBG_DEBUG(rv) = btoi (clgpsetb(db, "debug")) + DBG_LEVEL(rv) = clgpseti (db, "level") + DBG_OTHER(rv) = clgpseti(db, "other") + DBG_QUICK(rv) = btoi (clgpsetb(db, "quickdraw")) + + call clgpset (db, "file", Memc[bp], SZ_LINE) + call clgpset (db, "keystroke", Memc[ks], SZ_LINE) + DBG_KEYSTROKE(rv) = Memc[ks] + if (!streq(Memc[bp],"") && !streq(Memc[bp]," ")) { + call realloc (DBG_FNAME(rv), SZ_FNAME, TY_CHAR) + call strcpy (Memc[bp], DEBUG_FNAME(rv), SZ_FNAME) + iferr (DBG_FD(rv) = open (DEBUG_FNAME(rv), APPEND, TEXT_FILE)) + call error (0, "Error opening debug file.") + if (DBG_DEBUG(rv) == YES) + call dbg_init (rv, DBG_FD(rv)) + } else if (streq("STDOUT", Memc[bp])) + DBG_FD(rv) = STDOUT + else + DBG_FD(rv) = NULL + + call clcpset (db) + call sfree (sp) +end + + +procedure zz_pause(str) +char str[ARB] + +real x, y +int wcs, key, stat +char command[SZ_FNAME] +int clgcur() + +begin + call eprintf("%s") + call pargstr(str) + call flush (STDERR) + stat = clgcur("cursor", x, y, wcs, key, command, SZ_FNAME) + call eprintf(" \n") + + if ('x' == key || 'q' == key || 'I' == key) + call error (0,"Quitting") + + return +end + + +procedure zz_dump1r(fname, data, npts) +char fname[SZ_FNAME] +real data[ARB] +int npts + +pointer fd +int i, open() +errchk open + +begin + fd = open(fname, WRITE_ONLY, TEXT_FILE) + + do i = 1, npts { + call fprintf(fd, "%f %f\n") + call pargr(real(i)) + call pargr(data[i]) + } + call flush(fd) + call close(fd) + return +end + + +procedure zz_dump1rx (fname, data, npts, x1, xinc) +char fname[SZ_FNAME] +real data[ARB] +int npts +real x1, xinc + +pointer fd +int i, open() +errchk open + +begin + fd = open(fname, WRITE_ONLY, TEXT_FILE) + + do i = 1, npts { + call fprintf(fd, "%f %f\n") + call pargr(x1+(i-1)*xinc) + call pargr(data[i]) + } + call flush(fd) + call close(fd) + return +end + + +procedure zz_dump1i(fname, data, npts) +char fname[SZ_FNAME] +int data[ARB] +int npts + +pointer fd +int i, open() +errchk open + +begin + fd = open(fname, WRITE_ONLY, TEXT_FILE) + + do i = 1, npts { + call fprintf(fd, "%d %d\n") + call pargi(i) + call pargi(data[i]) + } + call flush(fd) + call close(fd) + return +end + + +procedure zz_pvec (gp, y, npts, lo, hi, title) + +pointer gp +real y[npts] +int npts +real lo, hi +char title[SZ_LINE] + +real x1, x2, y1, y2 + +begin + if (gp == NULL) + return + + call gclear (gp) + call gascale (gp, y, npts, 2) + call ggwind (gp, x1, x2, y1, y2) + call gswind (gp, lo-(hi*.1), hi+(hi*.1), y1-(y2*.1), y2+(y2*.1)) + call glabax (gp, title, "pixel", "intensity") + call gvline (gp, y, npts, lo, hi) + + call zz_pause("") +end + + +procedure zz_pvecm (gp, y, npts, lo, hi, title) + +pointer gp +real y[npts] +int npts +real lo, hi +char title[SZ_LINE] + +real x1, x2, y1, y2 + +begin + if (gp == NULL) + return + + call gclear (gp) + call gascale (gp, y, npts, 2) + call ggwind (gp, x1, x2, y1, y2) + call gswind (gp, lo-(hi*.1), hi+(hi*.1), y1-(y2*.1), y2+(y2*.1)) + call glabax (gp, title, "pixel", "intensity") + call gvline (gp, y, npts, lo, hi) +end + + +procedure zz_print_struct (rv) + +pointer rv + +begin + call zz_prstruct1 (rv) + call zz_prstruct2 (rv) +end + + +procedure zz_prstruct1 (rv) + +pointer rv + +begin + call eprintf ("RV_OPIXX = %d\n") ; call pargi(RV_OPIXX(rv)) + call eprintf ("RV_OPIXY = %d\n") ; call pargi(RV_OPIXY(rv)) + call eprintf ("RV_RPIXX = %d\n") ; call pargi(RV_RPIXX(rv)) + call eprintf ("RV_RPIXY = %d\n") ; call pargi(RV_RPIXY(rv)) + call eprintf ("RV_WKPIXX = %d\n") ; call pargi(RV_WKPIXX(rv)) + call eprintf ("RV_WKPIXY = %d\n") ; call pargi(RV_WKPIXY(rv)) + call eprintf ("RV_APODIZE = %g\n") ; call pargr(RV_APODIZE(rv)) + call eprintf ("RV_AUTOWRITE = %d\n") ; call pargi(RV_AUTOWRITE(rv)) + call eprintf ("RV_AUTODRAW = %d\n") ; call pargi(RV_AUTODRAW(rv)) + call eprintf ("RV_CONTINUUM = %d\n") ; call pargi(RV_CONTINUUM(rv)) + call eprintf ("RV_FILTER = %d\n") ; call pargi(RV_FILTER(rv)) + call eprintf ("RV_INTERACTIVE = %d\n") ; call pargi(RV_INTERACTIVE(rv)) + call eprintf ("RV_PIXCORR = %d\n") ; call pargi(RV_PIXCORR(rv)) + call eprintf ("RV_INTERP = %d\n") ; call pargi(RV_INTERP(rv)) + call eprintf ("RV_BACKGROUND = %g\n") ; call pargr(RV_BACKGROUND(rv)) + call eprintf ("RV_FITDONE = %d\n") ; call pargi(RV_FITDONE(rv)) + call eprintf ("RV_FITFUNC = %d\n") ; call pargi(RV_FITFUNC(rv)) + call eprintf ("RV_FITHGHT = %g\n") ; call pargr(RV_FITHGHT(rv)) + call eprintf ("RV_FITWIDTH = %g\n") ; call pargr(RV_FITWIDTH(rv)) + call eprintf ("RV_ISHIFT = %d\n") ; call pargi(RV_ISHIFT(rv)) + call eprintf ("RV_ISTART = %d\n") ; call pargi(RV_ISTART(rv)) + call eprintf ("RV_IEND = %d\n") ; call pargi(RV_IEND(rv)) + call eprintf ("RV_MINWIDTH = %g\n") ; call pargr(RV_MINWIDTH(rv)) + call eprintf ("RV_MAXWIDTH = %g\n") ; call pargr(RV_MAXWIDTH(rv)) + call eprintf ("RV_MAXITERS = %d\n") ; call pargi(RV_MAXITERS(rv)) + call eprintf ("RV_PEAK = %d\n") ; call pargi(RV_PEAK(rv)) + call eprintf ("RV_TOLERANCE = %g\n") ; call pargr(RV_TOLERANCE(rv)) + call eprintf ("RV_WEIGHTS = %g\n") ; call pargr(RV_WEIGHTS(rv)) + call eprintf ("RV_WINPAR = %g\n") ; call pargr(RV_WINPAR(rv)) + call eprintf ("RV_WINCENPAR = %g\n") ; call pargr(RV_WINCENPAR(rv)) + call eprintf ("RV_WINDOW = %d\n") ; call pargi(RV_WINDOW(rv)) + call eprintf ("RV_WINCENTER = %d\n") ; call pargi(RV_WINCENTER(rv)) + call eprintf ("RV_WINL = %d\n") ; call pargi(RV_WINL(rv)) + call eprintf ("RV_WINR = %d\n") ; call pargi(RV_WINR(rv)) + call eprintf ("RV_APNUM = %d\n") ; call pargi(RV_APNUM(rv)) + call eprintf ("RV_CCFNPTS = %d\n") ; call pargi(RV_CCFNPTS(rv)) + call eprintf ("RV_CURAPNUM = %d\n") ; call pargi(RV_CURAPNUM(rv)) + call eprintf ("RV_DI1 = %d\n") ; call pargi(RV_DI1(rv)) + call eprintf ("RV_DSCALE = %g\n") ; call pargr(RV_DSCALE(rv)) + call eprintf ("RV_DSLOPE = %g\n") ; call pargr(RV_DSLOPE(rv)) + call eprintf ("RV_DX1 = %g\n") ; call pargr(RV_DX1(rv)) + call eprintf ("RV_DY1 = %g\n") ; call pargr(RV_DY1(rv)) + call eprintf ("RV_DX2 = %g\n") ; call pargr(RV_DX2(rv)) + call eprintf ("RV_DY2 = %g\n") ; call pargr(RV_DY2(rv)) + call eprintf ("RV_FILL = %d\n") ; call pargi(RV_FILL(rv)) + call eprintf ("RV_FFTNPTS = %d\n") ; call pargi(RV_FFTNPTS(rv)) + call eprintf ("RV_IMNUM = %d\n") ; call pargi(RV_IMNUM(rv)) + call eprintf ("RV_IMUPDATE = %d\n") ; call pargi(RV_IMUPDATE(rv)) + call eprintf ("RV_IS_DOUBLE = %d\n") ; call pargi(RV_IS_DOUBLE(rv)) + call eprintf ("RV_MODES = %d\n") ; call pargi(RV_MODES(rv)) + call eprintf ("RV_NOBJS = %d\n") ; call pargi(RV_NOBJS(rv)) + call eprintf ("RV_NTEMPS = %d\n") ; call pargi(RV_NTEMPS(rv)) + call eprintf ("RV_NFITP = %d\n") ; call pargi(RV_NFITP(rv)) + call eprintf ("RV_NPTS = %d\n") ; call pargi(RV_NPTS(rv)) + call eprintf ("RV_NSHIFTS = %d\n") ; call pargi(RV_NSHIFTS(rv)) + call eprintf ("RV_NUMAPS = %d\n") ; call pargi(RV_NUMAPS(rv)) + call eprintf ("RV_OAPNUM = %d\n") ; call pargi(RV_OAPNUM(rv)) + call eprintf ("RV_REBIN = %d\n") ; call pargi(RV_REBIN(rv)) + call eprintf ("RV_RNPTS = %d\n") ; call pargi(RV_RNPTS(rv)) + call eprintf ("RV_RAPNUM = %d\n") ; call pargi(RV_RAPNUM(rv)) + call eprintf ("RV_TEMPNUM = %d\n") ; call pargi(RV_TEMPNUM(rv)) + call eprintf ("RV_UPDATE = %d\n") ; call pargi(RV_UPDATE(rv)) + call eprintf ("RV_VERBOSE = %d\n") ; call pargi(RV_VERBOSE(rv)) + call eprintf ("RV_ZTHRESH = %g\n") ; call pargr(RV_ZTHRESH(rv)) + call eprintf ("RV_OBSPTR = %d\n") ; call pargi(RV_OBSPTR(rv)) + call eprintf ("RV_ALTITUDE = %g\n") ; call pargr(RV_ALTITUDE(rv)) + call eprintf ("RV_LATITUDE = %g\n") ; call pargr(RV_LATITUDE(rv)) + call eprintf ("RV_LONGITUDE = %g\n") ; call pargr(RV_LONGITUDE(rv)) + call eprintf ("RV_NEWGRAPH = %d\n") ; call pargi(RV_NEWGRAPH(rv)) + call eprintf ("RV_RECORD = %d\n") ; call pargi(RV_RECORD(rv)) + call eprintf ("RV_TXFD = %d\n") ; call pargi(RV_TXFD(rv)) + call eprintf ("RV_GRFD = %d\n") ; call pargi(RV_GRFD(rv)) + call eprintf ("RV_VBFD = %d\n") ; call pargi(RV_VBFD(rv)) + call eprintf ("RV_CCFFILE = %d\n") ; call pargi(RV_CCFFILE(rv)) + call eprintf ("RV_CCFTYPE = %d\n") ; call pargi(RV_CCFTYPE(rv)) + call eprintf ("RV_STATLINE = %d\n") ; call pargi(RV_STATLINE(rv)) + call eprintf ("RV_TEMPCODE = %d\n") ; call pargi(RV_TEMPCODE(rv)) + call eprintf ("RV_TCODE = %d\n") ; call pargi(RV_TCODE(rv)) + call eprintf ("RV_PRINTZ = %d\n") ; call pargi(RV_PRINTZ(rv)) + call eprintf ("RV_DTYPE = %d\n") ; call pargi(RV_DTYPE(rv)) + call eprintf ("RV_GTYPE = %d\n") ; call pargi(RV_GTYPE(rv)) + call eprintf ("RV_RESDONE = %d\n") ; call pargi(RV_RESDONE(rv)) + call eprintf ("RV_SPMKEY = %d\n") ; call pargi(RV_SPMKEY(rv)) + call eprintf ("RV_SPMPLOT = %d\n") ; call pargi(RV_SPMPLOT(rv)) + call eprintf ("RV_WHERE = %d\n") ; call pargi(RV_WHERE(rv)) + call eprintf ("RV_X1 = %g\n") ; call pargr(RV_X1(rv)) + call eprintf ("RV_X2 = %g\n") ; call pargr(RV_X2(rv)) + call eprintf ("RV_Y1 = %g\n") ; call pargr(RV_Y1(rv)) + call eprintf ("RV_Y2 = %g\n") ; call pargr(RV_Y2(rv)) +end + + +procedure zz_prstruct2 (rv) + +pointer rv + +begin + call eprintf ("RV_APPARAM = %d\n") ; call pargi(RV_APPARAM(rv)) + call eprintf ("RV_APLIST = %d\n") ; call pargi(RV_APLIST(rv)) + call eprintf ("RV_CMD = %d\n") ; call pargi(RV_CMD(rv)) + call eprintf ("RV_DCBIAS = %g\n") ; call pargr(RV_DCBIAS(rv)) + call eprintf ("RV_DCFLAG = %d\n") ; call pargi(RV_DCFLAG(rv)) + call eprintf ("RV_DELTAV = %g\n") ; call pargr(RV_DELTAV(rv)) + call eprintf ("RV_DO_CORRECT = %d\n") ; call pargi(RV_DO_CORRECT(rv)) + call eprintf ("RV_OFORMAT = %d\n") ; call pargi(RV_OFORMAT(rv)) + call eprintf ("RV_RFORMAT = %d\n") ; call pargi(RV_RFORMAT(rv)) + call eprintf ("RV_FWHM_Y = %g\n") ; call pargr(RV_FWHM_Y(rv)) + call eprintf ("RV_GLOB_W1 = %g\n") ; call pargr(RV_GLOB_W1(rv)) + call eprintf ("RV_GLOB_W2 = %g\n") ; call pargr(RV_GLOB_W2(rv)) + call eprintf ("RV_NEWXCOR = %d\n") ; call pargi(RV_NEWXCOR(rv)) + call eprintf ("RV_OW0 = %g\n") ; call pargr(RV_OW0(rv)) + call eprintf ("RV_OW2 = %g\n") ; call pargr(RV_OW2(rv)) + call eprintf ("RV_OWPC = %g\n") ; call pargr(RV_OWPC(rv)) + call eprintf ("RV_RW0 = %g\n") ; call pargr(RV_RW0(rv)) + call eprintf ("RV_RW2 = %g\n") ; call pargr(RV_RW2(rv)) + call eprintf ("RV_RWPC = %g\n") ; call pargr(RV_RWPC(rv)) + call eprintf ("RV_DO_REBIN = %d\n") ; call pargi(RV_DO_REBIN(rv)) + call eprintf ("RV_VOBS = %g\n") ; call pargd(RV_VOBS(rv)) + call eprintf ("RV_VCOR = %g\n") ; call pargd(RV_VCOR(rv)) + call eprintf ("RV_ERROR = %g\n") ; call pargd(RV_ERROR(rv)) + call eprintf ("RV_HJD = %g\n") ; call pargd(RV_HJD(rv)) + call eprintf ("RV_MJD_OBS = %g\n") ; call pargd(RV_MJD_OBS(rv)) + call eprintf ("RV_VREL = %g\n") ; call pargr(RV_VREL(rv)) + call eprintf ("RV_R = %g\n") ; call pargr(RV_R(rv)) + call eprintf ("RV_SHIFT = %g\n") ; call pargr(RV_SHIFT(rv)) + call eprintf ("RV_SIGMA = %g\n") ; call pargr(RV_SIGMA(rv)) + call eprintf ("RV_FWHM = %g\n") ; call pargr(RV_FWHM(rv)) + call eprintf ("RV_HEIGHT = %g\n") ; call pargr(RV_HEIGHT(rv)) +end |