diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/twodspec/apextract/apparams.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/twodspec/apextract/apparams.x')
-rw-r--r-- | noao/twodspec/apextract/apparams.x | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/noao/twodspec/apextract/apparams.x b/noao/twodspec/apextract/apparams.x new file mode 100644 index 00000000..526b4bcd --- /dev/null +++ b/noao/twodspec/apextract/apparams.x @@ -0,0 +1,95 @@ +define PARAMS "apextract$apparams.dat" +define LEN_LINE 80 + +# AP_PARAMS -- Show the parameters. + +procedure ap_params (file, image, line, nsum) + +char file[ARB] # Aperture file +char image[ARB] # Image name +int line # Image line +int nsum # Number of lines to sum + +int in, out, len, nchar +pointer sp, param, type, format, instr, outstr, str +bool apgetb() +int apgeti(), open(), fscan(), nscan(), strlen() +real apgetr() +errchk open + +begin + # Open input parameter file and output stream. + in = open (PARAMS, READ_ONLY, TEXT_FILE) + out = open (file, APPEND, TEXT_FILE) + + call smark (sp) + call salloc (param, SZ_LINE, TY_CHAR) + call salloc (type, 10, TY_CHAR) + call salloc (format, 10, TY_CHAR) + call salloc (instr, SZ_LINE, TY_CHAR) + call salloc (outstr, SZ_LINE, TY_CHAR) + call salloc (str, SZ_LINE, TY_CHAR) + Memc[outstr] = EOS + + call fprintf (out, "%32tAPEXTRACT PARAMETERS\n") + call fprintf (out, "image=%s%27tline=%d%53tnsum=%d\n") + call pargstr (image) + call pargi (line) + call pargi (nsum) + call fprintf (out, "database=%s%27tlogfile=%s%53tplotfile=%s\n\n") + call clgstr ("database", Memc[str], SZ_LINE) + call pargstr (Memc[str]) + call clgstr ("logfile", Memc[str], SZ_LINE) + call pargstr (Memc[str]) + call clgstr ("plotfile", Memc[str], SZ_LINE) + call pargstr (Memc[str]) + + len = 0 + while (fscan (in) != EOF) { + call gargwrd (Memc[param], SZ_LINE) + call gargwrd (Memc[type], 10) + call gargwrd (Memc[format], 10) + call gargi (nchar) + if (nscan() < 4) + nchar = LEN_LINE + + if (len + nchar > LEN_LINE) { + call strcat ("\n", Memc[outstr], SZ_LINE) + call fprintf (out, Memc[outstr]) + Memc[outstr] = EOS + len = 0 + } + + if (nscan() == 1) { + call sprintf (Memc[outstr], SZ_LINE, "%%%dt%s") + call pargi ((LEN_LINE - strlen (Memc[param])) / 2) + call pargstr (Memc[param]) + } else if (nscan() == 4) { + call sprintf (Memc[str], SZ_LINE, "%%%dt%s=") + call pargi (len+1) + call pargstr (Memc[param]) + call strcat (Memc[str], Memc[outstr], SZ_LINE) + + call sprintf (Memc[str], SZ_LINE, Memc[format]) + switch (Memc[type]) { + case 'b': + call pargb (apgetb (Memc[param])) + case 'i': + call pargi (apgeti (Memc[param])) + case 'r': + call pargr (apgetr (Memc[param])) + case 's': + call apgstr (Memc[param], Memc[instr], SZ_LINE) + call pargstr (Memc[instr]) + } + call strcat (Memc[str], Memc[outstr], SZ_LINE) + } + len = len + nchar + } + call strcat ("\n", Memc[outstr], SZ_LINE) + call fprintf (out, Memc[outstr]) + + call close (in) + call close (out) + call sfree (sp) +end |