aboutsummaryrefslogtreecommitdiff
path: root/noao/rv/rvwparam.x
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/rv/rvwparam.x
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/rv/rvwparam.x')
-rw-r--r--noao/rv/rvwparam.x127
1 files changed, 127 insertions, 0 deletions
diff --git a/noao/rv/rvwparam.x b/noao/rv/rvwparam.x
new file mode 100644
index 00000000..15b1f85d
--- /dev/null
+++ b/noao/rv/rvwparam.x
@@ -0,0 +1,127 @@
+include <time.h>
+include "rvpackage.h"
+include "rvflags.h"
+include "rvcont.h"
+include "rvcomdef.h"
+
+define SZ_DATEBUF 16
+
+# RV_PARAM -- Procedure to write the rv parameters to a text file.
+
+procedure rv_param (rv, out, task)
+
+pointer rv # RV struct pointer
+pointer out # database descriptor
+char task[ARB] # task name
+
+int nchars
+pointer sp, outstr, date, time
+int envfind(), gstrcpy()
+
+begin
+ if (out == NULL)
+ return
+
+ # Allocate working space.
+ call smark (sp)
+ call salloc (outstr, SZ_LINE, TY_CHAR)
+ call salloc (date, SZ_DATEBUF, TY_CHAR)
+ call salloc (time, SZ_DATEBUF, TY_CHAR)
+
+ # Write the id.
+ nchars = envfind ("version", Memc[outstr], SZ_LINE)
+ if (nchars <= 0)
+ nchars = gstrcpy ("NOAO/IRAF", Memc[outstr], SZ_LINE)
+ call rv_sparam (out, "IRAF", Memc[outstr], "version",
+ "current version of IRAF")
+ nchars = envfind ("userid", Memc[outstr], SZ_LINE)
+ call rv_sparam (out, "USER", Memc[outstr], "name", "user id")
+ call gethost (Memc[outstr], SZ_LINE)
+ call rv_sparam (out, "HOST", Memc[outstr], "computer",
+ "IRAF host machine")
+ call rv_date (Memc[date], Memc[time], SZ_DATEBUF)
+ call rv_sparam (out, "DATE", Memc[date], "yyyy-mm-dd", "date")
+ call rv_sparam (out, "TIME", Memc[time], "hh:mm:ss", "time")
+ call rv_sparam (out, "PACKAGE", "rv", "name",
+ "name of IRAF package")
+ call rv_sparam (out, "TASK", task, "name", "name of rv task")
+
+ call sfree (sp)
+end
+
+
+# RV_DATE -- Procedure to produce the date and time strings for RV output files.
+
+procedure rv_date (date, time, maxch)
+
+char date[SZ_LINE] # the date string
+char time[SZ_LINE] # the time string
+int maxch # the maximum number of character in the string
+
+int tm[LEN_TMSTRUCT]
+long clktime()
+
+begin
+ call brktime (clktime (long(0)), tm)
+ call sprintf (date, maxch, "%04d-%02d-%02d")
+ call pargi (TM_YEAR(tm))
+ call pargi (TM_MONTH(tm))
+ call pargi (TM_MDAY(tm))
+ call sprintf (time, maxch, "%02d:%02d:%02d")
+ call pargi (TM_HOUR(tm))
+ call pargi (TM_MIN(tm))
+ call pargi (TM_SEC(tm))
+end
+
+
+# RV_IPARAM -- Procedure to encode an rv integer parameter.
+
+procedure rv_iparam (out, keyword, value, units, comments)
+
+pointer out # output file descriptor
+char keyword[ARB] # keyword string
+int value # parameter value
+char units[ARB] # units string
+char comments[ARB] # comment string
+
+begin
+ if (out == NULL)
+ return
+
+ call strupr (keyword)
+ call fprintf (out, "#K%4t%-10.10s%14t = %17t%-15d\n")
+ call pargstr (keyword)
+ call pargi (value)
+ call pargstr (units)
+end
+
+
+# RV_SPARAM -- Procedure to encode an rv string parameter.
+
+procedure rv_sparam (out, keyword, value, units, comments)
+
+pointer out # output file descriptor
+char keyword[ARB] # keyword string
+char value[ARB] # parameter value
+char units[ARB] # units string
+char comments[ARB] # comment string
+
+bool streq()
+
+begin
+ if (out == NULL)
+ return
+
+ call strupr (keyword)
+ if (streq(keyword,"REGIONS") ||
+ streq(keyword,"APNUM")) {
+ call fprintf (out, "#K%4t%-10.10s%14t = %17t%-s\n")
+ call pargstr (keyword)
+ call pargstr (value)
+ } else {
+ call fprintf (out, "#K%4t%-10.10s%14t = %17t%-30.30s%48t%-10.10s\n")
+ call pargstr (keyword)
+ call pargstr (value)
+ call pargstr (units)
+ }
+end