{
{    The purpose of this procedure is to locate a specific kind of ANSI tape
{ label within a sequence of ANSI labels returned by
{ FSP$GET_TAPE_LABEL_ATTRIBUTES.
{
{       FSP$LOCATE_TAPE_LABEL ( LABEL_SEQUENCE, LABEL_IDENTIFIER,
{             LABEL_LOCATOR)
{
{ label_sequence: (input)  This parameter specifies a pointer to a sequence of
{       ANSI labels and other blocks from a tape volume.  Refer to the
{       documentation of FSP$GET_TAPE_LABEL_ATTRIBUTES for a complete
{       description of the organization and contents of an ANSI label sequence.
{       The sequence may contain an fsc$erroneous_tape_label_block (a block
{       read with error), an fsc$non_tape_label_block (a data block), an
{       fsc$normal_tape_label_block (an ANSI label), an
{       fsc$null_tape_label_block (a block that is not to be written), and an
{       fsc$tapemark_tape_label_block (a record that represents a tapemark on
{       the tape).
{
{ label_identifier: (input)  This parameter specifies which ANSI label or other
{       block is to be returned and how it is to be found.  Several searching
{       options are provided:
{
{    fsc$tape_label_locate_by_index:  This method of searching allows one to
{          identify a block in the sequence by number rather than by name.  Any
{          block in the sequence may be referenced using this search method.
{
{    fsc$tape_label_locate_by_kind:  This method of searching allows one to
{          identify an ANSI label by an ordinal constant identifier.  Only
{          fsc$normal_tape_label_block blocks may be referenced using this
{          searching method.
{
{    fsc$tape_label_locate_by_ident:  This method of searching allows one to
{          identify an ANSI label by name (label_identifer) and number
{          (label_number).  For example, VOL is a label_identifier and 1 is a
{          label_number; the search is conducted for a VOL1 label.  This is the
{          easiest search method to use when you are trying to find an optional
{          label such as HDR3..HDR9, etc.
{
{ label_locator: (output)  This parameter specifies the result of the search
{       for a particular block in the LABEL_SEQUENCE.
{
{       label_found:  Indicates whether or not the sought after block was
{             found.
{
{       label_block:  Provides a pointer to the block in the label_sequence.
{             When you determine what kind of block this is by looking at the
{             label_block_descriptor, you may NEXT the appropriate TYPE of
{             record using this sequence pointer.  A number of predefined CYBIL
{             records are provided to simplify your access to specific fiels
{             within each kind of ANSI label;
{
{             fst$ansi_eof1_label fst$ansi_eof2_label fst$ansi_eofn_label
{             fst$ansi_eov1_label fst$ansi_eov2_label fst$ansi_eovn_label
{             fst$ansi_hdr1_label fst$ansi_hdr2_label fst$ansi_hdrn_label
{             fst$ansi_uhla_label fst$ansi_utla_label fst$ansi_uvln_label
{             fst$ansi_vol1_label fst$ansi_voln_label
{
{       label_block_descriptor:  Identifies the kind of block that was found
{             and returns information necessary to properly reference the
{             block.
{
{       label_index:  Identifies the ordinal position of this block in the
{             sequence.
{
