separate (Tracker.Element_Pkg)
procedure El_Set_Up is
    -----------------------------------------------------------------------------
    --|
    --|  NAME:  EL_SET_UP
    --|
    --|  OVERVIEW:
    --|    This procedure is only called if there is an existing input file.
    --|    The element list is set up by reading the element record
    --|    from the input file by calling EL_READ, and adding it to the linked
    --|    list by calling ADD_RECORD_TO_LISTS until there are no more element
    --|    records.
    --|
    --|  EXCEPTIONS HANDLED:
    --|    others  Error reading the record from the file.
    --|    .  This exception raises ERROR_IN_INPUT_FILE.
    --|
    --|  HISTORY:
    --|    written by   May Lee   March 1985
    --|
    --|  NOTES:
    --|    The number of element records read in is determined by the
    --|    global variable num_of_elements.
    --|
    --|    If an error is detected reading the data, the rest of the input line
    --|    is skipped and reading the rest of the data continues.  All errors
    --|    found are reported.  Execution is not terminated until the entire
    --|    input file has been read.
    --|
    -----------------------------------------------------------------------------
    El_Record : Element_Pointer;
    El_Num : Integer := 0;
    Bad_Data : Boolean := False;

    procedure El_Read is separate;

begin
    for I in 1 .. Num_Of_Elements loop
        El_Num := I;

        begin
            -- create a null record
            El_Record := new Element_Type;

            -- read the element
            El_Read;

            -- add the element record to the linked lists
            Add_Record_To_Lists (El_Record);
        exception
            when others =>
                Skip_Line (Tracker_File);
                Put (" Error reading element record ");
                Put (El_Num, 1);
                Put_Line (" from the tracker file. ");
                Bad_Data := True;
        end;
    end loop;

    if Bad_Data then
        raise Error_In_Input_File;
    end if;
end El_Set_Up;