IRAF V2.11.2 Patch Release Notes
August 21, 1999


A summary of the V2.11.2 patch release changes is listed below. For further details about system changes see the "notes.v211" file in the iraf$local directory. Detailed revisions notes for each application package are in the package directories in a file called Revisions, i.e., digiphot$Revisions.


System Highlights


Application Package Changes (* indicates a parameter change)

IMAGES:
    IMCOMBINE:
*	Added a new output which is a pixel mask identifying which pixel in
	which input image is rejected or not included in the final output.

	The internal calculation type was changed from the highest precedence
	type of the input images to the highest of the input and output.
	This allows setting the output type to be real to force computation
	in real for integer input images.  Not doing this could cause severe
	truncation errors if users specify there own scaling values.

	The grow option to exclude pixels near a rejected pixel now works
	in two dimensions.

    IMEDIT:
	The temporary editing buffer image was made into a unique temporary
	image rather than the fixed name of "epixbuf".

IMCOORDS:
    The IMCOORDS package tasks CCFIND, IMCCTRAN, and SKYCTRAN were modified
    to support both the old and new DATE-OBS format.

    Support for an experimental zenithal polynomial WCS was added to the
    IMCOORDS package tasks.

    Support for the ICRS (Hipparcos) celestial coordinate system was
    added to the IMCOORDS package tasks.

IMGEOM/IMMATCH:
*   The IMGEOM and IMMATCH package SHIFTLINES, IMSHIFT, XREGISTER, ROTATE,
    MAGNIFY, IMLINTRAN, GEOTRAN, GREGISTER, WREGISTER, and SREGISTER tasks
    were upgraded to support the new sinc and drizzle resampling options.

ASTUTIL:
    All tasks which involve times were checked for Y2K problems.  Tasks
    which read the DATE-OBS keyword were updated to support the new
    FITS definition for this keyword.

    CCDTIME:
    	The database keywords can now be indexed by reference to the telescope,
	filter, and/or telescope.

        A new filter keyword, "extinction", was added to specify the
	extinction.

ONEDSPEC:
    Some improvements were made to better recognize various CTYPE values.

    REIDENTIFY:
        When the reference and image names are the same the task will now
	skip the reidentify,

    IDENTIFY/REIDENTIFY:
	When a coordinate list is read it is sorted and identical
	entries are eliminated.  Thus, line lists no longer need to
	be sorted.

APEXTRACT:
    APALL:
	Added a keyword SUBAP when using echelle output with subapertures.

CCDRED:
    CCDPROC:
*	Added an optional output image parameter.

APPHOT:
    The APPHOT default input and output file and image naming routines
    were modified to deal rationally with FITS image extension and GEIS file
    root names.

    POLYPHOT:
	The polygon drawing code in the POLYPHOT task was modified to flush the
	graphics buffer after each polygon segment is drawn instead of after
	the polygon is complete.

DAOPHOT:
    The DAOPHOT default input and output file and image naming routines
    were modified to deal rationally with FITS image extension and GEIS
    file root names.

    The DAOPHOT ADDSTAR, ALLSTAR, GROUP, NSTAR, PEAK, PSTSELECT,
    PSF, and SUBSTAR tasks were modified to  read and write default images
    and files from and to directories other than the current directory
    just as the DAOFIND and PHOT tasks and the all the APPHOT package
    tasks do.

    The restriction on the number of stars imposed by the "maxnstars"
    parameter in the PSTSELECT, PSF, GROUP, ALLSTAR, and SUBSTAR tasks was
    removed.  Maxnstars is now used only for setting the initial buffer
    size.

UTILITIES:
    SURFIT:
*       The UTILITIES package task SURFIT was modified to support the surface
	fitting package half cross-terms option.


Additional System Changes

pkg/math/iminterp/
	The image interpolation package was modified to support 1D and 2D
	sinc interpolation and drizzle resampling.

pkg/math/slalib/
        The Starlink contributed library slalib was upgraded from version
	1.6.3 to version 2.3.0. There are seventeen new routines in the
	upgraded library. Most of these either deal with converting between
	the FK5 to ICRS (Hipparcos) equatorial coordinate systems, or with
	computing orbital elements for solar system objects.

sys/vops/asok.gx
        The algorithm used in this routine was found to be extremely slow in
        cases where many or all of the elements of the input area were equal.
        It was replaced by a different algorithm from Wirth which avoids
        this problem.

sys/gio/imdkern/idk.x
sys/gio/imdkern/imdpcell.x
dev/graphcap
        Changed bits per word of the IDK bitmask from 8 to 32  to increase
	the encoding efficiency of the bitmask to the maximum and thus reduce
	the size of the internal IDK frame buffer bitmask used for overlay
	graphics.  Increased the maximum frame buffer size from 2048 square
	to 8192 square.  Changed the max resolution for imdkern to 8192x8192
	in the graphcap entry.

unix/os/zfioks.c
        Added a new environment variable "KSRSH".  This can be used to define
        the RSH command to be used to make network connections.  The default
        value is "rsh" (or the equivalent "remsh" on one old system).  For
        example, one can set KSRSH=ssh to cause IRAF networking to use ssh
        instead of rsh (ssh is a more secure version of rsh that uses strong
        authentication).

lib/time.h
sys/etc/cnvtime.x
sys/etc/cnvdate.x
        Minor changes were made to print the year using 4 digits instead of
        2, to make this code Y2K compliant. 

unix/hlib/r1mach.f
unix/hlib/d1mach.f
unix/hlib/i1mach.f
        Installed updated versions of these files from the PORT package
        on netlib.  The values for the minimum and maximum IEEE floating
        point normals were invalid (thanks to Steve Walton for pointing
        this out).  NOTE: even on a machine with IEEE floating point, the
        file d1mach.f has to be modified to reflect the byte order of
        the platform IRAF is being ported to. 

bin.sparc/S.e 
bin.ssun/S.e 
        The "S.e" link was restored.  This link points to the Sun/IRAF shared
        image for the development system.  It is not required for execution,
        but is required at compile/link time for edsym.e to be able to 
        update the symbols for the IRAF shared image.  This is needed to
        debug functions in the shared image.

unix/boot/spp/rpp/mkpkg.sh
unix/boot/spp/rpp/ratlibc/mkpkg.sh
        The ratlibc code was being compiled into a library "libc.a".  This
        caused problems linking rpp.e on Solaris 7, so the name of this
        internal, temporary library was changed to libratc.a. 

lib/time.h
sys/etc/dtmcnv.x
sys/etc/gmtcnv.x
sys/etc/mkpkg
unix/hlib/libc/knames.h
unix/os/gmttolst.c
unix/os/mkpkg
unix/os/zgmtco.c
        1) A new kernel routine "zgmtco" was added to OS.  This gives the
        correction, in seconds, from LST to GMT.  (LST here means local
        standard time, or clock time).  Since IRAF already returns the clock
        time in LST seconds, this allows either LST or GMT to be determined.
        Note LST corrects for daylight savings time, the GMT correction takes
        this into account as well.  In practice programs can just ignore
        daylight savings time and let the kernel worry about it.

        2) New routines gmttolst() and lsttogmt() were added to ETC.  These
        convert times (in seconds) to and from LST and GMT.  A value of zero
        can be input to get the correction value.

        3) A set of four new routines dtm_encode, dtm_decode, dtm_encode_hms,
        and dtm_decode_hms were added to ETC.  A related flag value was
        added to .  "dtm" standard for date/time.  These routines
        convert time expressed in year, month, date, and time of day to and
        from a string value.  A flags value can be used to select the type
        of time string to be encoded or decoded.  Currently DATE-OBS in
        FITS-Y2K and the old FITS formats are supported. 

unix/os/zglobl.c
        Increased the size of SZ_PROCNAME from 32 to 256 chars.  On some
        systems this is a full pathname, and could overflow the buffer.

b/gio.h
        This and the next several changes were part of an effort to change
        GIO to allow long "device names" for GUIs (which may include a GUI
        file name) to be passed through the graphics stream to the stdgraph
        kernel.

        Increased SZ_UIFNAME from 99 to 199 chars.  This also increases the
        size of the dynamically allocated GIO descriptor. 

sys/gio/cursor/gtr.h
        Increased SZ_TRDEVNAME from 29 to 229.  Increased SZ_KERNFNAME from
        59 to 259.  This also increases the size of the dynamically allocated
        GTR descriptor. 

sys/gio/stdgraph/stdgraph.h
        Increased SZ_GDEVICE from 31 to 256.  Increased SZ_UIFNAME from 99
        to 199.  Increased SZ_SBUF from 1024 to 2048.  These changes did
        not change the size of the dynamically allocated stdgraph descriptor,
        as string space is dynamically allocated in the string buffer.

sys/gio/gmsg.x
        This code was changed to use STDERR rather than STDOUT to send
        messages to GUIs.  Formerly, if the stdout of a GUI task was
        redirected this could cause GUI messages (gmsg) to never reach
        the GUI (this is of course still possible using STDERR, but it
        is less likely that someone will need to redirect the STDERR of an
        interactive GUI).  The text stream are used for messaging because
        messages can be any size; messages of hundreds of KB are possible,
        e.g. when sending large GUI files, or documentation text.  (Something
        like the message bus is needed to fully address this problem).

dev/graphcap
        Added a new xgterm entry "xgterm-nogui", which is identical to the
        xgterm entry but which has GUI messaging (gmsg) disabled.  This
        logical device will completely disable GUIs but still permit vector
        graphics.  It also disables the builtin default ED (xgterm.gui), but
        the default xgterm GUI built into xgterm itself should kick in in
        this case when graphics mode is entered.  We don't plan to use
        xgterm-nogui, but it could be useful as a fallback in case of
        problems, or for testing. 

lib/imio.h
        Increased the default file buffer size used by IMIO a factor of 4
        from 65536 to 262144.  The units are XCHAR, so in byte units the new
        default image file buffer size increased from about 128 KB to about
        half a megabyte (about the size of dev$pix).  Note that applications
        can override the default buffer size with an imset option, and any
        such existing applications will be unaffected by this change
        (imcombine for example probably controls the image buffer sizes in
        order to have many images open at once).  Ordinary imaging tasks
        should function with fewer i/o operations however.

unix/hlib/config.h
        1. Increased the size of the file pushback buffer from 512 to 1024.
        Not a big deal as it gets incremented anyway if overflow occurs.

        2. Changed LEN_RANDBUF from 1 to 8.  LEN_SEQBUF remains at 8 as
        before.  Random mode FIO buffers are LEN_RANDBUF*blksize, hence
        these have increased in size from 512 bytes to 4KB (random mode
        i/o is rarely used).  Sequential mode FIO buffers are LEN_SEQBUF
        *optbufsize, where optbufsize is returned by the file driver.
        Sequential mode (fseti (fd, F_ADVISE, F_SEQUENTIAL) is also little
        used however.  Most file operations use the unscaled "optbufsize"
        returned by the kernel driver (see below).

        Note config.h contains a few size definitions which are not actually
        used any longer in the code, since these values now come from the
        device drivers are are tuned for each device and host system.  Hence
        these older values were unchanged.

unix/hlib/libc/kernel.h
        Increased the optbufsize for a binary file from 4096 to 32768.  The
        static file optbufsize was similarly increased, but static (mapped)
        files are little used in the current system.  All the other optbuf
        sizes remained the same.  The network devices, process communications
        buffers, and so on all remain at 4KB since this value is a good
        match for the buffer sizes used in the Unix kernel.

        Hence, ordinary binary file i/o operations now use 32 KB buffers
        instead of 4 KB buffers.  The special cases of random mode binary
        file i/o and sequentially optimized binary file i/o have default
        buffer sizes of 4 KB and 256 KB respectively.  These should be 
        reasonable, safe, and efficient buffer sizes for most applications.

unix/os/zfiond.c
        Modified the server-side code to set the socket option SO_REUSEADDR
        when opening a socket and binding it to an IP address and port.
        This avoids the annoying delay which is otherwise seen when a 
        server quits, but the socket it was using is not released for
        some time until the kernel times it out and releases it.  This
        only affects server-side connections and currently I don't know
        of any IRAF servers that use ZFIOND, but probably all server-side
        socket code should use this feature.  (setsockopt was added quite
        some time after most of the socket code in IRAF was originally
        written).

sys/gio/imdkern/idk.x
sys/gio/imdkern/imdpcell.x
dev/graphcap
        Changed BPW from 8 to 32 (nbits used per integer word of the IDK
        image bitmask); this increases the encoding efficiency of the
        bitmask to the maximum to reduce the size of the internal IDK frame
        buffer bitmask used for overlay graphics.  Increased the maximum
        frame buffer size from 2048 square to 8192 square.  Changed the
        max resolution for imdkern to 8192x8192 in the graphcap entry.

unix/os/zfioks.c
        Added a new environment variable "KSRSH".  This can be used to define
        the RSH command to be used to make network connections.  The default
        value is "rsh" (or the equivalent "remsh" on one old system).  For
        example, one can set KSRSH=ssh to cause IRAF networking to use ssh
        instead of rsh (ssh is a more secure version of rsh that uses strong
        authentication). 

lib/gio.h
        This and the next several changes were part of an effort to change
        GIO to allow long "device names" for GUIs (which may include a GUI
        file name) to be passed through the graphics stream to the stdgraph
        kernel.

        Increased SZ_UIFNAME from 99 to 199 chars.  This also increases the
        size of the dynamically allocated GIO descriptor.

sys/gio/cursor/gtr.h
        Increased SZ_TRDEVNAME from 29 to 229.  Increased SZ_KERNFNAME from
        59 to 259.  This also increases the size of the dynamically allocated
        GTR descriptor.

sys/gio/stdgraph/stdgraph.h
        Increased SZ_GDEVICE from 31 to 256.  Increased SZ_UIFNAME from 99
        to 199.  Increased SZ_SBUF from 1024 to 2048.  These changes did
        not change the size of the dynamically allocated stdgraph descriptor,
        as string space is dynamically allocated in the string buffer.

unix/hlib/libc/kernel.h
        Increased the optbufsize for a binary file from 4096 to 32768.  The
        static file optbufsize was similarly increased, but static (mapped)
        files are little used in the current system.  All the other optbuf
        sizes remained the same.  The network devices, process communications
        buffers, and so on all remain at 4KB since this value is a good
        match for the buffer sizes used in the Unix kernel.

        Hence, ordinary binary file i/o operations now use 32 KB buffers
        instead of 4 KB buffers.  The special cases of random mode binary
        file i/o and sequentially optimized binary file i/o have default
        buffer sizes of 4 KB and 256 KB respectively.  These should be 
        reasonable, safe, and efficient buffer sizes for most applications.

lib/time.h
sys/etc/dtmcnv.x
sys/etc/gmtcnv.x
sys/etc/mkpkg
unix/hlib/libc/knames.h
unix/os/gmttolst.c
unix/os/mkpkg
unix/os/zgmtco.c
        1) A new kernel routine "zgmtco" was added to OS.  This gives the
        correction, in seconds, from LST to GMT.  (LST here means local
        standard time, or clock time).  Since IRAF already returns the clock
        time in LST seconds, this allows either LST or GMT to be determined.
        Note LST corrects for daylight savings time, the GMT correction takes
        this into account as well.  In practice programs can just ignore
        daylight savings time and let the kernel worry about it.

        2) New routines gmttolst() and lsttogmt() were added to ETC.  These
        convert times (in seconds) to and from LST and GMT.  A value of zero
        can be input to get the correction value.

        3) A set of four new routines dtm_encode, dtm_decode, dtm_encode_hms,
        and dtm_decode_hms were added to ETC.  A related flag value was
        added to .  "dtm" standard for date/time.  These routines
        convert time expressed in year, month, date, and time of day to and
        from a string value.  A flags value can be used to select the type
        of time string to be encoded or decoded.  Currently DATE-OBS in
        FITS-Y2K and the old FITS formats are supported. 


[ IRAF homepage ]

Posted: 21Aug1999