| getlun |
|
Table of contents
Procedure
GETLUN ( Get a free logical unit )
SUBROUTINE GETLUN ( UNIT )
Abstract
Return the number of a free logical unit.
Required_Reading
None.
Keywords
FILES
Declarations
IMPLICIT NONE
INTEGER UNIT
Brief_I/O
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
UNIT O The number of a free logical unit.
Detailed_Input
None.
Detailed_Output
UNIT is the number of a free logical unit (also called
an "external unit"). If no free units are available,
the value of UNIT is 0.
Parameters
None.
Exceptions
1) If there are no free logical units available, the error
SPICE(NOFREELOGICALUNIT) is signaled and UNIT is assigned the
value 0.
2) This routine obtains a logical unit number from FNDLUN, which
executes a Fortran INQUIRE statement. If that statement fails
to execute properly, FNDLUN returns a negative unit number,
GETLUN assigns the value 0 to UNIT, and, the error
SPICE(INQUIREFAILED) is signaled.
Files
None.
Particulars
GETLUN returns the number of the first (unreserved) unit not
currently connected to a file. It thus frees the user from
having to maintain an accounting of which units are open, which
are closed, and which are available.
This routine is related to the routines FNDLUN, RESLUN, and
FRELUN. Together, these routines support coordinated usage of
Fortran logical units. GETLUN (Get a free logical unit) and
FNDLUN (Find a free logical unit) both have the function of
returning a logical unit number that is not reserved or already
in use. The principal difference between the functionality of
these routines is that GETLUN both returns a status code and
signals an error if a free unit is not found, while FNDLUN
merely returns a status code.
RESLUN is used to reserve logical unit numbers, so that they will
not be returned by GETLUN or FNDLUN; FRELUN frees logical units
previously reserved via calls to RESLUN.
Logical units 5-7 are reserved by default. Other units may be
reserved by calling RESLUN. Once reserved, units (except 5-7) may
be unreserved by calling FRELUN.
To reserve logical unit numbers for special use, refer to
RESLUN. To make reserved units available to GETLUN or FNDLUN,
refer to FRELUN.
A unit returned by GETLUN does NOT automatically become a
reserved unit. If the user wishes to reserve a unit found by
GETLUN, the call to GETLUN must be followed by a call to RESLUN.
This routine obtains a logical unit number via a call to FNDLUN.
FNDLUN uses an INQUIRE statement; if that statement doesn't
execute properly, GETLUN will signal the error. This arrangement
allows FNDLUN to be error free.
The range of possible unit numbers returned by GETLUN is dependent
on the parameters MINLUN and MAXLUN, which are defined in FNDLUN.
Note that although 0 is a valid logical unit number on some
systems, a value of 0 returned by GETLUN indicates that no free
logical unit was available, rather than that logical unit 0 is
available.
Examples
The following code fragment illustrates the use of GETLUN.
CALL GETLUN ( UNIT )
IF ( UNIT .EQ. 0 ) THEN
RETURN
END IF
Restrictions
1) This routine never returns a logical unit number of 0. The
value 0 is used to indicate that no free logical unit was
found.
Literature_References
None.
Author_and_Institution
C.A. Curzon (JPL)
J. Diaz del Rio (ODC Space)
B.V. Semenov (JPL)
W.L. Taber (JPL)
I.M. Underwood (JPL)
Version
SPICELIB Version 1.1.0, 13-AUG-2021 (JDR)
Added IMPLICIT NONE statement.
Edited the header to comply with NAIF standard.
SPICELIB Version 1.0.2, 18-MAY-2010 (BVS)
Removed "C$" marker from text in the header.
SPICELIB Version 1.0.1, 10-MAR-1992 (WLT)
Comment section for permuted index source lines was added
following the header.
SPICELIB Version 1.0.0, 31-JAN-1990 (CAC) (IMU)
|
Fri Dec 31 18:36:23 2021