TAPE_IO


List of Routines


Routine Descriptions

CHECK_TAPE_DRV

[Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	CHECK_TAPE_DRV

 Purpose     :	Associates tape drive numbers with device files.  *Unix only*

 Explanation :	This is an internal routine to the CDS/SERTS Unix tape handling
		utilities.  It converts tape drive numbers to actual device
		names, and checks to make sure that the device file is open.

		**Unix only**

 Use         :	CHECK_TAPE_DRV, UNIT, LOGICAL_DRIVE, DRIVE, LUN

 Inputs      :	UNIT = Tape unit number.  Tape drives are selected via the UNIX
		       environment variables "MT1", "MT2", etc.  The desired
		       tape drive is thus specified by numbers, as in VMS.
		       Must be from 0 to 9.

 Opt. Inputs :	None.

 Outputs     :	LOGICAL_DRIVE = Name of environment variable pointing to tape
				drive device file, e.g. "MT0".
		DRIVE	      = Name of device file, e.g. '/dev/nrst0'.
		LUN	      = Logical unit number used for reads and writes.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	None.

 Common      :	CHCK_TAPE_DRVS contains array TAPE_LUN, containing logical unit
		numbers for each tape device, and TAPE_OPEN, which tells
		whether each device is open or not.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	If the device file is not yet open, then the tape is rewound,
		and a file unit is opened to it.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	William Thompson, Apr 1991.

 Written     :	William Thompson, GSFC, April 1991.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Added keyword /NOSTDIO to OPEN statement.
			Incorporated into CDS library.
		Version 2, William Thompson, GSFC, 22 December 1993.
			Added spawn to "mt rewind".

 Version     :	Version 2, 22 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/check_tape_drv.pro)


DISMOUNT

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	DISMOUNT

 Purpose     :	Emulates the VMS DISMOUNT function in Unix.

 Explanation :	Emulates the VMS DISMOUNT function in the Unix environment.
		Although this is not a standard IDL function, it is available
		as a separate LINKIMAGE routine for VMS.

		The main purpose of this procedure is to close the file unit
		open on the tape device, and optionally to unload the tape.
		Errors can result if the tape is unloaded manually rather than
		using this routine.

		**Unix only**

 Use         :	DISMOUNT, UNIT

 Inputs      :	UNIT = Tape unit number.  Tape drives are selected via the UNIX
		       environment variables "MT1", "MT2", etc.  The desired
		       tape drive is thus specified by numbers, as in VMS.
		       Must be from 0 to 9.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	NOUNLOAD = If set, then the tape is simply rewound, not taken
			   off line.

 Calls       :	CHECK_TAPE_DRV

 Common      :	CHCK_TAPE_DRVS contains array TAPE_LUN, containing logical unit
		numbers for each tape device, and TAPE_OPEN, which tells
		whether each device is open or not.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	None.

 Written     :	William Thompson, GSFC, 21 December 1993.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.

 Version     :	Version 1, 21 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/dismount.pro)


FITSLIST

[Previous Routine] [Next Routine] [List of Routines]
  NAME:
	FITSLIST
  PURPOSE:
	Procedure will read FITS files from a tape on the specified
	tape unit.  The headers are placed in file NAME, with the
	default extension of .LIS.  Headers are also displayed at the
       terminal.  

  CALLING SEQUENCE:
	FITSLIST            
	FITSLIST,UPDATE_SWITCH

  OPTIONAL INPUT:
	UPDATE_SWITCH - If passed and nonzero, then an existing file is opened,
			and output is appended to the end of this file.  Also,
			the FITS tape is not rewound prior to starting the read.
			This is useful if the tape contains spurious EOF marks.
  OUTPUT:
	None.

  SIDE EFFECTS:
	File NAME or NAME.LIS is created, or if UPDATE_SWITCH is nonzero then
	additional information is appended to the file.
	Headers are displayed at terminal as well as written to file.

  RESTRICTIONS:
	Tape must be mounted before calling FITSLIST.
	FITSLIST uses the VMS IDL tape positioning command, but will also
	run on Unix machines by using procedures which call IOCTL and 
	which emulate the VMS IDL tape I/O functions (e.g TAPRD)

  PROMPTS:
	Program will prompt for 
       (1)   NAME of output listing file
       (2)   tape unit number

  PROCEDURES CALLED:
	FITSTAPE
  HISTORY:
	William Thompson, 15-May-1986, based on FITSREAD.
	William Thompson, 09-Feb-1990, added file numbers.

(See /usr/local/idl/lib/zastron/tape_io/fitslist.pro)


FITSRD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	FITSRD
 PURPOSE:
	Interactive procedure to read FITS tape files into
	SDAS/FITS disk files.   FOR VMS IDL ONLY.

 CALLING SEQUNCE: 
	FITSRD                      ;Prompt for all parameters
	FITSRD,[UNIT,LIST,KEYWORD,TAPENAME,FNAMES]

 OPTIONAL INPUTS:
	Interactive users will normally just type FITSRD and be
	prompted for all parameters.   However, parameters can
	be passed directly to FITSRD

	UNIT - tape unit number, scalar
	LIST - vector containing list of file numbers to read
	KEYWORD - scalar string giving a FITS keyword which will be
		extracted from the headers on tape and used for file names.
		Set KEYWORD = '', if such a keyword is not to be used.
	TAPENAME - scalar string giving a name for the tape.  Filenames
		will be constructed by concatenating TAPENAME with the
		file number.  TAPENAME is used only if KEYWORD = ''
	FNAME - vector string giving a file name for each file number 
		given in LIST.  FNAME is used only if both KEYWORD = '' and
		TAPENAME = ''.   Spaces are trimmed from names in FNAME. 

 SIDE NOTES:
	FITSRD will always rewind the tape before processing.  Images 
	are NOT converted using BSCALE and BZERO factors in the header.

 SIDE EFFECTS:
	For each tape file SDAS/FITS disk files will be created with names:
			name.HHH and name.HHD
	FITS extension (e.g. tables) files will have names:
		name_x.HHH and name_x.HHD
	where x runs from 1 to the number of extensions.
 EXAMPLES:
	FITSRD                          ;FITSRD will prompt for parameters

	FITSRD,1,INDGEN(5)+1,'IMAGE'  	;Read first 5 files on unit 1
					;Filenames taken from IMAGE keyword

	FITSRD,1,[2,4],'','',['GALAXY','  STAR']  ;Read files 2 and 4 on unit 1
					;Create filenames GALAXY and STAR   

	FITSRD,1,[2,4]        	;Read files 2 and 4, prompt for filenames

 MODIFICATION HISTORY:
	version 2  by D. Lindler	Nov 1986
	added FITS extension and long block tape capability.

(See /usr/local/idl/lib/zastron/tape_io/fitsrd.pro)


FITSREAD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	FITSREAD
 PURPOSE:
	Procedure to read a FITS file from a tape on the specified
	tape unit.  The header is placed in .HHH and the data
	is placed in the file .HHD.   This procedure is called by
	FITSRD which is the interactive procedure for normal use. FOR VMS 
	IDL ONLY 

 CALLING SEQUENCE: 
	fitsread, unit, name, [ keyword ]
 INPUTS:
	unit - tape unit number
	name - file name (without an extension)

 OPTIONAL INPUT:
	keyword - (optional) if supplied and not equal to the null
		string then the file name will be taken from the
		value of the header keyword specified

 OUTPUT:
	name - name of file if input keyword parameter is supplied

 SIDE EFFECTS:
	files name.hhh and name.hhd are created
 NOTES:
	The procedure FITSRD is normally used to read a FITS tape.  
	FITSREAD is a procedure call internal to FITSRD.

 HISTORY:
	version 2  by D. Lindler  NOV, 1986  added keyword input
		added fits extension input capability
	Converted to IDL Version 2.  M. Greason, STX, June 1990.
	Fixed check for 'END     ' keyword   W. Landsman    August 1991

(See /usr/local/idl/lib/zastron/tape_io/fitsread.pro)


FITSTAPE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	FITSTAPE
 PURPOSE:
	Function to perform FITS tape I/O.  Called by FITSREAD.   
	FOR VMS IDL ONLY!

 CALLING SEQUENCE:  
	status = fitstape( command, unit, bitpix, data )

 INPUTS:
	command - string command from the following choices
		'init' - initialization (must be first call to fitstape)
		'read' - get next 2880 byte data buffer
		'eof'  - check for end of tape file
		'write'- write 2880 byte data buffer
		'woef' - empty buffer and write end-of-file
	unit -   tape unit number
	bitpix - bits/per data element (used to control byte swapping)
		(required for 'read' and 'write')
		(for 'init' command this parameter gives
		the blocking factor, number of 2880 byte
		records per tape record. if not supplied 1 is
		assumed)
	data - 2880 byte data array if 'write' command

 OUTPUTS:
	data - 2880 byte data array if 'read' command
		status is returned as the function value
		with the following meanings.
		'init' = 1
		'read' = !err returned by taprd
		'write' = 1
		'eof'  = 1 if at end of file
			0 if not at end of file
		'weof' = 1

 COMMON BLOCKS
	QFITSTAPE

 HISTORY
	Version 1  D. Lindler  Nov 1986
	Converted to IDL Version 2.  M. Greason, STX, June 1990.
	Recognize BITPIX = -32 and BITPIX = -64   W. Landsman April 1992

(See /usr/local/idl/lib/zastron/tape_io/fitstape.pro)


FITSWRITE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	FITSWRITE
 PURPOSE:
	Procedure will write an internal SDAS file to a FITS tape on the 
	specified tape unit.    Called by FITSWRT

 CALLING SEQUENCE:
	FITSWRITE, UNIT, FILE, [ KEYWORD ]

 INPUTS:
	file - internal FITS file name without extension (extension
		is assumed to be .HHH and .HHD)
	unit - IDL tape unit number

 OPTIONAL INPUT:
	keyword - keyword to place file name into.  if not supplied
		or equals '' then the file name is not put into the
		header before writing it to tape.

 SIDE EFFECT:
	A FITS file is written to tape.

 PROCEDURE CALLS:
	remchar, sxhread, sxpar, fdecomp, sxaddpar, fitstape

 HISTORY:
	version 3  D. Lindler   Nov. 1986                
	version 4  W. Landsman  Oct. 1988 (Changed st*.pro calls to sx*.pro)
	converted to IDL Version 2.  M. Greason, STX, June 1990.

(See /usr/local/idl/lib/zastron/tape_io/fitswrite.pro)


FITSWRT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	FITSWRT
 PURPOSE:
	Interactive procedure to write internal SDAS file(s) to a FITS tape

 CALLING SEQUENCE: 
	FITSWRT

 INTERACTIVE INPUT:
	User will be prompted for the following
	(1)  tape unit number 
	(2)  blocking factor (1 - 10) = # of 2880 byte records per block 
	(3)  Name of a FITS keyword to put file names into.  This will simplify
		subsequent reading of the FITS tape, since individual filenames
		will not have to be specified.  If you don't want to put the 
		file names into the FITS header, then just hit  [RETURN].
	(4)  Whether FITS extension files (e.g FITS tables) should be auto-
		matically searched for.  If so, these should be of the form 
		name_extnumber
	(5)  file names - these may either be specified individually, or a
		tapename may be specified, and all files in the
		form tapename will be written to tape.

 SIDE EFFECTS:
	Tape is not rewound before files are written.  Tape should be positioned
	with REWIND or SKIPF before calling FITSWRT.  If you want to append
	new FITS files to a tape, then call TINIT (tape init) to position tape 
	between final double EOF.

 PROCEDURE CALLS:
	fitstape, getfiles, gettok, fitswrite

 HISTORY:
	version 3  D. Lindler  Nov 86

(See /usr/local/idl/lib/zastron/tape_io/fitswrt.pro)


FXTAPEREAD

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	FXTAPEREAD
 Purpose     : 
	Interactive procedure to copy FITS files from tape onto disk.
 Explanation : 
	Interactive procedure to copy FITS files from tape onto disk.  Data is
	left in FITS format, and not converted to SDAS.  *FOR VMS IDL ONLY*
 Use         : 
	FXTAPEREAD                      ;Prompt for all parameters

	FXTAPEREAD,UNIT,LIST,KEYWORD,TAPENAME,FNAMES

	FXTAPEREAD,1,INDGEN(5)+1,'IMAGE'
			;Read the first 5 files on unit 1.  The filenames are
			;taken from the IMAGE keyword.

	FXTAPEREAD,1,[2,4],'','',['GALAXY','STAR']
			;Read files 2 and 4 on unit 1.  Create files named
			;GALAXY and STAR.

	FXTAPEREAD,1,[2,4]
			;Read files 2 and 4, and prompt for filenames.

 Inputs      : 
	None required.
 Opt. Inputs : 
	Interactive users will normally just type FXTAPEREAD and be prompted
	for all parameters.  However, the following parameters can be passed
	directly to FXTAPEREAD

	UNIT	 = Tape unit number (scalar).
	LIST	 = Vector containing list of file numbers to read.
	KEYWORD	 = Scalar string giving a FITS keyword which will be extracted
		   from the headers on tape and used for file names.  Set
		   KEYWORD to the null string '', if such a keyword is not to
		   be used.
	TAPENAME = Scalar string giving a name for the tape.  Filenames will be
		   constructed by concatenating TAPENAME with the file number.
		   TAPENAME is used only if KEYWORD is passed as the null
		   string ''.
	FNAME	 = Vector string giving a file name for each file number given
		   in LIST.  FNAME is used only if both KEYWORD = '' and
		   TAPENAME = ''.  Spaces are trimmed from names in FNAME.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	FITSTAPE, GETFILES, FXTPIO_READ
 Common      : 
	None.
 Restrictions: 
	None.
 Side effects: 
	FXTAPEREAD will always rewind the tape before processing.

	The FITS file is copied over record by record with no conversion,
	until the end-of-file marker is reached.  No testing is done of the
	validity of the FITS file.

	Images are NOT converted using BSCALE and BZERO factors in the header.

	For each tape file a FITS disk file will be created with the name
	".FITS".

 Category    : 
	Data Handling, I/O, FITS, Generic.
 Prev. Hist. : 
	William Thompson, March 1992, from FITSRD by D. Lindler.
	William Thompson, May 1992, fixed TPOS bug when reading multiple files.
	William Thompson, Jan. 1993, changed for renamed FXTPIO_READ.
 Written     : 
	William Thompson, GSFC, March 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 12 April 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 12 April 1993.

(See /usr/local/idl/lib/zastron/tape_io/fxtaperead.pro)


FXTAPEWRITE

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	FXTAPEWRITE
 Purpose     : 
	Interactive procedure to copy disk FITS files to tape.
 Explanation : 
	Asks the user a series of questions to walk him or her through copying
	a number of FITS files from disk to tape.
 Use         : 
	FXTAPEWRITE
 Inputs      : 
	User will be prompted for the following:
		(1)  Tape unit number.
		(2)  Blocking factor (1-10) = # of 2880 byte records per block.
		(3)  Name of a FITS keyword to put file names into.  This will
		     simplify subsequent reading of the FITS tape, since
		     individual filenames will not have to be specified.  If
		     you don't want to put the file names into the FITS header,
		     then just hit [RETURN].
		(4)  File names - these may either be specified individually,
		     or a tapename may be specified, and all files in the form
		     "tapename.FITS" will be written to tape.
 Opt. Inputs : 
	None.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	FITSTAPE, GETFILES, FXTPIO_WRITE
 Common      : 
	None.
 Restrictions: 
	Currently only supported under VMS.
 Side effects: 
	Tape is not rewound before files are written.  Tape should be
	positioned with REWIND or SKIPF before calling FXTAPEWRITE.  If you
	want to append new FITS files to a tape, then call TINIT (tape init) to
	position tape between final double EOF.
 Category    : 
	Data Handling, I/O, FITS, Generic.
 Prev. Hist. : 
	William Thompson, March 1992, from FITSWRT by D. Lindler.
	William Thompson, May 1992, removed call to TINIT.
	William Thompson, Jan. 1993, changed for renamed FXTPIO_WRITE.
 Written     : 
	William Thompson, GSFC, March 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 12 April 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 12 April 1993.

(See /usr/local/idl/lib/zastron/tape_io/fxtapewrite.pro)


FXTPIO_READ

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	FXTPIO_READ
 Purpose     : 
	Copies FITS files from tape to disk -- internal routine.
 Explanation : 
	Procedure to copy a FITS file from a tape on the specified tape unit to
	the disk file .FITS.  Data is left in FITS format, and not
	converted to SDAS.  *FOR VMS IDL ONLY*

	The procedure FXTAPEREAD is normally used to read a FITS tape.
	FXTPIO_READ is a procedure call internal to FXTAPEREAD.

 Use         : 
	FXTPIO_READ,UNIT,NAME
	FXTPIO_READ,UNIT,NAME,KEYWORD
 Inputs      : 
	UNIT	= Tape unit number.
	NAME	= File name (without an extension).
 Opt. Inputs : 
	KEYWORD	= If supplied and not equal to the null string then the file
		  name will be taken from the value of the header keyword
		  specified.
 Outputs     : 
	NAME	= Name of file if input keyword parameter is supplied.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	REMCHAR, FITSTAPE, FXPAR
 Common      : 
	None.
 Restrictions: 
	This routine is currently only supported under VMS.
 Side effects: 
	The FITS file is copied to a disk file called .FITS.

	The FITS file is copied over record by record with no conversion,
	until the end-of-file marker is reached.  No testing is done of the
	validity of the FITS file.

	Images are NOT converted using BSCALE and BZERO factors in the header.

 Category    : 
	Data Handling, I/O, FITS, Generic.
 Prev. Hist. : 
	William Thompson, March 1992, from FITSREAD by D. Lindler, M. Greason,
				      and W. Landsman.

	W. Thompson, May 1992, changed open statement to force 2880 byte fixed
			       length records (VMS).  The software here does not
			       depend on this file configuration, but other
			       FITS readers might.

	William Thompson, Jan. 1993, renamed to be compatible with DOS file
		naming limitations.
 Written     : 
	William Thompson, GSFC, March 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 12 April 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 12 April 1993.

(See /usr/local/idl/lib/zastron/tape_io/fxtpio_read.pro)


FXTPIO_WRITE

[Previous Routine] [Next Routine] [List of Routines]
 Project     : SOHO - CDS

 Name        : 
	FXTPIO_WRITE
 Purpose     : 
	Copy FITS files from disk to tape -- internal routine.
 Explanation : 
	Procedure will copy a disk FITS file to the specified tape unit, at the
	current tape position.  Used for true disk FITS files, not SDAS/Geis
	files.  Called by FXTAPEWRITE.
 Use         : 
	FXTPIO_WRITE,UNIT,FILE
	FXTPIO_WRITE,UNIT,FILE,KEYWORD
 Inputs      : 
	UNIT	= IDL tape unit number.
	FILE	= Disk FITS file name, with extension.
 Opt. Inputs : 
	KEYWORD	= Keyword to place file name into.  If not supplied or equal to
		  the null string '' then the file name is not put into the
		  header before writing it to tape.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	REMCHAR, FXHREAD, FXPAR, FDECOMP, FXADDPAR, FITSTAPE
 Common      : 
	None.
 Restrictions: 
	This routine is currently only supported under VMS.
 Side effects: 
	None.
 Category    : 
	Data Handling, I/O, FITS, Generic.
 Prev. Hist. : 
	William Thompson, March 1992, from FITSWRITE by D. Lindler, W.
		Landsman, and M. Greason.
	William Thompson, Jan. 1993, renamed to be compatible with DOS file
		naming limitations.
 Written     : 
	William Thompson, GSFC, March 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 12 April 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 12 April 1993.

(See /usr/local/idl/lib/zastron/tape_io/fxtpio_write.pro)


REWIND

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	REWIND

 Purpose     :	Emulates the VMS REWIND function in Unix.

 Explanation :	Emulates the VMS REWIND function in the Unix environment.

		**Unix only**

 Use         :	REWIND, UNIT

 Inputs      :	UNIT = Tape unit number.  Tape drives are selected via the UNIX
		       environment variables "MT1", "MT2", etc.  The desired
		       tape drive is thus specified by numbers, as in VMS.
		       Must be from 0 to 9.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	CHECK_TAPE_DRV

 Common      :	None.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	VERSION 1, R. W. Thompson 11/30/89
		William Thompson, Apr 1991, rewrote to better emulate VMS
			version.

 Written     :	R. W. Thompson, GSFC/IUE, 30 November 1989.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Rewrote to use IOCTL.

 Version     :	Version 1, 21 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/rewind.pro)


SKIPF

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	SKIPF

 Purpose     :	Emulates the VMS SKIPF function on UNIX machines.

 Explanation :	Emulates the VMS SKIPF function on UNIX machines.

 Use         :	SKIPF, UNIT, NSKIP
		SKIPF, UNIT, NSKIP, RECORDS

 Inputs      :	UNIT	= Tape unit number.  Tape drives are selected via the
			  UNIX environment variables "MT1", "MT2", etc.  The
			  desired tape drive is thus specified by numbers, as
			  in VMS.  Must be from 0 to 9.

		NSKIP	= Number of files or records to skip.

 Opt. Inputs :	RECORDS = If present, then records are skipped instead of
			  files.

 Outputs     :	None.  However, !ERR is set to ABS(NSKIP)

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	CHECK_TAPE_DRV

 Common      :	None.

 Restrictions:	This routine may not act exactly the same as the VMS
		equivalent, particularly in regards to the behavior of the !ERR
		system variable.

		The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.  !ERR is set to ABS(NSKIP).

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	VERSION 1, R. W. Thompson 12/4/89
		William Thompson, Apr 1991, rewrote to better emulate VMS
			version.

 Written     :	R. W. Thompson, GSFC/IUE, 4 December 1989.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Rewrote to use IOCTL.

 Version     :	Version 1, 21 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/skipf.pro)


TAPRD

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	TAPRD

 Purpose     :	Emulates VMS TAPRD procedure on UNIX machines.

 Explanation :	Emulates VMS TAPRD procedure on UNIX machines.  However, the
		actions of this routine may differ from the VMS equivalent in
		nonstandard situations.

		*** Unix only ***

 Use         :	TAPRD, ARRAY, UNIT  [, BYTE_REVERSE ]

 Inputs      :	ARRAY	= Variable into which the data should be read.  The
			  datatype and number of values to attempt to read is
			  based on this array.

		UNIT	= Specifies the magnetic tape unit.  Not to be confused
			  with logical unit numbers.  In UNIX, the number
			  refers to one of the environment variables MT0, MT1,
			  etc., which translate into a physical device name,
			  e.g.

					setenv MT0 /dev/nrst0

 Opt. Inputs :	BYTE_REVERSE = If present, then even and odd bytes are swapped.

 Outputs     :	The output is read into ARRAY. Also, !ERR is set to the number
		of bytes actually read.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	CHECK_TAPE_DRV

 Common      :	None.

 Restrictions:	This routine may not have all the abilities of the VMS
		equivalent, particularly in regards to the !ERR system
		variable.

		The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	William Thompson, GSFC, June 1991.

 Written     :	William Thompson, GSFC, June 1991.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Rewrote to use READU with TRANSFER_COUNT keyword.
		Version 2, William Thompson, GSFC, 22 December 1993.
			Added check of ARRAY variable.

 Version     :	Version 2, 22 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/taprd.pro)


TAPWRT

[Previous Routine] [Next Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	TAPWRT

 Purpose     :	Emulates VMS TAPWRT procedure on UNIX machines.

 Explanation :	Emulates VMS TAPWRT procedure on UNIX machines.

		*** Unix only ***

 Use         :	TAPWRT, ARRAY, UNIT  [, BYTE_REVERSE ]

 Inputs      :	ARRAY	= Variable into which the data should be read.
		UNIT	= Specifies the magnetic tape unit.  Not to be confused
			  with logical unit numbers.  In UNIX, the number
			  refers to one of the environment variables MT0, MT1,
			  etc., which translate into a physical device name,
			  e.g.

					setenv MT0 /dev/nrst0

 Opt. Inputs :	BYTE_REVERSE = If present, then even and odd bytes are swapped.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	CHECK_TAPE_DRV

 Common      :	None.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	William Thompson, GSFC, June 1991.

 Written     :	William Thompson, GSFC, June 1991.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Rewrote to use WRITEU.

 Version     :	Version 1, 21 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/tapwrt.pro)


TINIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	TINIT   
 PURPOSE:  
	To position a tape for append a new file by placing it between the
	final double EOF marks.   (VMS only)

 CALLING SEQUENCE: 
	TINIT, UNIT

 PARAMETERS: 
	UNIT  - Integer scalar giving tape drive unit number

 SYSTEM VARIABLES USED:
	!ERR

 PROCEDURE: 
	The SKIPF procedure is used to skip files until a double end of file
	(EOF) is encountered.  The tape is then positioned between the 2 EOF
	marks.  TINIT will also display the number of files skipped.

 MODIFICATION HISTORY:
    W.B. Landsman   March 1990    Adapted from IUE RDAF

(See /usr/local/idl/lib/zastron/tape_io/tinit.pro)


WEOF

[Previous Routine] [List of Routines]
 Project     :	SOHO - CDS

 Name        :	WEOF

 Purpose     :	Emulates the VMS WEOF routine on UNIX machines.

 Explanation :	Emulates the VMS WEOF routine on UNIX machines.

		*** Unix only ***

 Use         :	WEOF, UNIT

 Inputs      :	UNIT = Tape unit number.  Tape drives are selected via the UNIX
		       environment variables "MT1", "MT2", etc.  The desired
		       tape drive is thus specified by numbers, as in VMS.
		       Must be from 0 to 9.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       :	CHECK_TAPE_DRV

 Common      :	None.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.0 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	VERSION 1, R. W. Thompson 11/30/89
		William Thompson, Apr 1991, rewrote to better emulate VMS
			version.

 Written     :	R. W. Thompson, GSFC/IUE, 30 November 1989.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.
			Rewrote to use IOCTL.

 Version     :	Version 1, 21 December 1993.

(See /usr/local/idl/lib/zastron/tape_io/weof.pro)