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
chckid

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

     CHCKID ( Check ID string )

     SUBROUTINE CHCKID ( CLASS, MAXLEN, ID )

Abstract

     Validate an ID string: check for non-printing characters
     or excessive non-blank length.

Required_Reading

     None.

Keywords

     STRING
     UTILITY

Declarations

     IMPLICIT NONE

     CHARACTER*(*)         CLASS
     INTEGER               MAXLEN
     CHARACTER*(*)         ID

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     CLASS      I   A description of the class to which ID belongs.
     MAXLEN     I   Maximum allowed non-blank length of ID.
     ID         I   The ID string to be validated.

Detailed_Input

     CLASS    is a descriptive string indicating the type of
              object represented by ID. Examples are
              'SPK segment identifier', 'DAF internal file name',
              or 'EK table name'.

              If the input ID is found to be invalid, CLASS is
              used in the error message generated by this
              routine.

     MAXLEN   is the maximum allowed non-blank length of the
              input ID string. If ID has any non-blank
              characters at positions greater than MAXLEN,
              an error will be signaled.

     ID       is the input ID string to be checked. In order
              to be considered valid, ID must contain only
              printing characters and must satisfy the condition

                 LASTNB( ID )  <  MAXLEN
                               -

Detailed_Output

     None. See $Particulars for a description of the effect of this
     routine.

Parameters

     None.

Exceptions

     1)  If ID contains any nonprintable characters, the error
         SPICE(NONPRINTABLECHARS) is signaled.

     2)  If MAXLEN is non-positive, the error SPICE(INVALIDCOUNT) is
          signaled.

     3)  If ID contains any non-blank characters past position
         MAXLEN, the error SPICE(IDSTRINGTOOLONG) is signaled.

     4)  If CLASS contains any non-printing characters, the error
         SPICE(NONPRINTABLECHARS) is signaled.

     5)  CLASS is allowed to be blank. The word 'ID' is used in
         place of the class string in any error messages in this
         case.

     6)  The error messages output by this routine have a maximum
         length of 320 characters. If substitution of CLASS and
         ID into the long messages causes overflow, the messages
         will be truncated on the right.

Files

     None.

Particulars

     This routine operates by side effects: it validates an ID string
     and signals an error if the ID has either of the following
     problems:

     -  There are non-printing characters in the ID string.

     -  The last non-blank character in the string occurs at a
        location having index higher than a specified value.

     The error message signaled by this routine contains the offending
     ID string and indicates the class of item to which ID belongs.
     The form of the message is:

         The <CLASS> <'ID'> is invalid; <reason>

Examples

     1)  If

            CLASS  = 'segment identifier'
            MAXLEN =  40

         and

            ID = 'Example EK created on March 28, 1995 by NJB/NAIF'

         the error message

            The segment identifier 'Example EK created on March 28,
            1995 by NJB/NAIF' is invalid; the last non-blank character
            is located at position 48.

         will be signaled.

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     N.J. Bachman       (JPL)
     J. Diaz del Rio    (ODC Space)

Version

    SPICELIB Version 1.1.0, 02-JUN-2021 (JDR)

        Added IMPLICIT NONE statement.

        Edited the header to comply with NAIF standard.

    SPICELIB Version 1.0.0, 16-JUN-1995 (NJB)
Fri Dec 31 18:36:01 2021