Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
getlun

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

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