*COMDECK DMSCONSUB
  
  
      ******************************************************************
      * 
      * CON-SUB-STC.
      * 
      * A NEW SUBSCHEMA STRUCTURE LINE IS INDICATED BY A NON-BLANK
      * CATNAME FIELD.
  
       CON-SUB-STC. 
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR STC-SS-AREA NOT = SPACES
  
             MOVE IDX-700 TO MSG-IDX
             MOVE CAT-LINE TO MSG-LINE
             MOVE "SUBSCHEMA" TO MSG-NAME 
             PERFORM ERROR-TYPE3 THRU ERROR-TYPE3-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
           THEN 
             GO TO CON-SUB-STC-XIT
           END-IF 
  
       LOOP-SUB-STC.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-SS-AREA NOT = SPACES
             MOVE STC-SS-AREA TO SUB-STC-CNAME. 
           IF STC-SS-ALY-NO NOT = SPACES
             MOVE STC-SS-ALY-NO TO SUB-STC-ALIAS. 
           IF STC-SS-INCLUDE NOT = SPACES 
             MOVE STC-SS-INCLUDE TO SUB-STC-INCL. 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND STC-SS-AREA = SPACES 
           THEN 
             GO TO LOOP-SUB-STC 
           END-IF 
  
       CON-SUB-STC-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-SUB-RSSREL. 
      * 
      * A NEW SUBSCHEMA SSREL LINE IS INDICATED BY EITHER A NON-BLANK 
      * RELNAME OR RESTRICT FIELD.  THE FIRST RESTRICT CANNOT OCCUR 
      * BEFORE THE FIRST RELNAME. 
  
       CON-SUB-RSSREL.
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * RELNAME/RESTRICT. 
           MOVE SPACES TO CONSOLID-LINE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR CAT-LINE-TYPE NOT = "R" 
  
      * NO TROUBLE IF RELNAME PRESENT.
             IF SSREL-SS-RELNAME NOT = SPACES 
             THEN 
               GO TO LOOP-SUB-RSSREL
             END-IF 
  
      * IF RELNAME HAS NOT YET BEEN GIVEN, DIAGNOSE ALL LINES WITHOUT IT
      * UNTIL FOUND.
             IF FOUND-RELN = "N"
             THEN 
               MOVE IDX-710 TO MSG-IDX
               MOVE "SUBSCH-SSREL-RELNAME" TO MSG-NAME
               PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
  
      * ONCE A RELNAME HAS BEEN FOUND, KEY ON RESTRICT NAME.
             ELSE 
               IF SSREL-SS-RESTRICT = SPACES
               THEN 
                 MOVE IDX-710 TO MSG-IDX
                 MOVE "SUBSCH-SSREL-RESTRICT" TO MSG-NAME 
                 PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
               ELSE 
                 GO TO LOOP-SUB-RSSREL
               END-IF 
             END-IF 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           GO TO CON-SUB-RSSREL-XIT 
  
       LOOP-SUB-RSSREL. 
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF SSREL-SS-RELNAME NOT = SPACES 
             MOVE SSREL-SS-RELNAME TO SUB-SSREL-RNAME.
           IF SSREL-SS-RESTRICT NOT = SPACES
             MOVE SSREL-SS-RESTRICT TO SUB-SSREL-RESTRICT.
           IF SSREL-SS-R-ALIAS NOT = SPACES 
             MOVE SSREL-SS-R-ALIAS TO SUB-SSREL-ALIAS.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "R"
             AND SSREL-SS-RELNAME = SPACES
             AND SSREL-SS-RESTRICT = SPACES 
           THEN 
             GO TO LOOP-SUB-RSSREL
           END-IF 
  
       CON-SUB-RSSREL-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-SUB-ISSREL. 
      * 
      * A NEW LINETYPE "I" SUBSCHEMA SSREL LINE IS INDICATED BY A 
      * NON-BLANK ID1 FIELD.
  
       CON-SUB-ISSREL.
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           MOVE ZERO TO SUB-SSREL-LPAREN. 
           MOVE ZERO TO SUB-SSREL-RPAREN. 
           MOVE ZERO TO SUB-SSREL-QCNT1.
           MOVE ZERO TO SUB-SSREL-QCNT2.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR CAT-LINE-TYPE NOT = "I" 
             OR SSREL-SS-ID1 NOT = SPACES 
  
             MOVE IDX-710 TO MSG-IDX
             MOVE "SUBSCH-SSREL-ID1" TO MSG-NAME
             PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
             OR CAT-LINE-TYPE NOT = "I" 
           THEN 
             GO TO CON-SUB-ISSREL-XIT 
           END-IF 
  
       LOOP-SUB-ISSREL. 
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF SSREL-SS-PRE-LOP NOT = SPACES 
             MOVE SSREL-SS-PRE-LOP TO SUB-SSREL-PRELOP. 
           IF SSREL-SS-LEFT-PAREN NOT = ZERO
             AND NOT = SPACES 
             MOVE SSREL-SS-LEFT-PAREN TO SUB-SSREL-LPAREN.
           IF SSREL-SS-ID1 NOT = SPACES 
             MOVE SSREL-SS-ID1 TO SUB-SSREL-ID1.
           IF SSREL-SS-ID1-ALIAS NOT = SPACES 
             MOVE SSREL-SS-ID1-ALIAS TO SUB-SSREL-ALIAS1. 
           IF SSREL-SS-ID1-SUB1 NOT = SPACES
             MOVE SSREL-SS-ID1-SUB1 TO SUB-SSREL-SUB1 (1 : 4).
           IF SSREL-SS-ID1-SUB2 NOT = SPACES
             MOVE SSREL-SS-ID1-SUB2 TO SUB-SSREL-SUB1 (5 : 4).
           IF SSREL-SS-ID1-SUB3 NOT = SPACES
             MOVE SSREL-SS-ID1-SUB3 TO SUB-SSREL-SUB1 (9 : 4).
           IF SSREL-SS-ID1-QUALF NOT = ZERO 
             AND NOT = SPACES 
             MOVE SSREL-SS-ID1-QUALF TO SUB-SSREL-QCNT1.
           IF SSREL-SS-ROP NOT = SPACES 
             MOVE SSREL-SS-ROP TO SUB-SSREL-ROP.
           IF SSREL-SS-ID2 NOT = SPACES 
             MOVE SSREL-SS-ID2 TO SUB-SSREL-ID2.
           IF SSREL-SS-ID2-TYPE NOT = SPACES
             MOVE SSREL-SS-ID2-TYPE TO SUB-SSREL-TYPE2. 
           IF SSREL-SS-ID2-ALIAS NOT = SPACES 
             MOVE SSREL-SS-ID2-ALIAS TO SUB-SSREL-ALIAS2. 
           IF SSREL-SS-ID2-SUB1 NOT = SPACES
             MOVE SSREL-SS-ID2-SUB1 TO SUB-SSREL-SUB2 (1 : 4).
           IF SSREL-SS-ID2-SUB2 NOT = SPACES
             MOVE SSREL-SS-ID2-SUB2 TO SUB-SSREL-SUB2 (5 : 4).
           IF SSREL-SS-ID2-SUB3 NOT = SPACES
             MOVE SSREL-SS-ID2-SUB3 TO SUB-SSREL-SUB2 (9 : 4).
           IF SSREL-SS-ID2-QUALF NOT = ZERO 
             AND NOT = SPACES 
             MOVE SSREL-SS-ID2-QUALF TO SUB-SSREL-QCNT2.
           IF SSREL-SS-RIGHT-PAREN NOT = ZERO 
             AND NOT = SPACES 
             MOVE SSREL-SS-RIGHT-PAREN TO SUB-SSREL-RPAREN. 
           IF SSREL-SS-LOP NOT = SPACES 
             MOVE SSREL-SS-LOP TO SUB-SSREL-LOP.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "I"
             AND SSREL-SS-ID1 = SPACES
           THEN 
             GO TO LOOP-SUB-ISSREL
           END-IF 
  
      * ERROR IF "ID2" NOT EVER FOUND.
           IF SUB-SSREL-ID2 = SPACES
           THEN 
             MOVE IDX-710 TO MSG-IDX
             MOVE "SUB-SSREL-ID2" TO MSG-NAME 
             PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
           END-IF 
  
       CON-SUB-ISSREL-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-SUB-QBSSREL.
      * 
      * A NEW TYPE "Q"/"B" SUBSCH SSREL LINE INCLUDES ALL LINES UNTIL 
      * A NEW LINETYPE. 
  
       CON-SUB-QBSSREL. 
  
      * CLEAR OUT PREVIOUS "CONSOLID-LINE". 
           MOVE SPACES TO CONSOLID-LINE.
  
       LOOP-SUB-QBSSREL.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF SS-QUAL1 NOT = SPACES 
             MOVE SS-QUAL1 TO SUB-SSREL-QUAL1.
           IF SS-QUAL1-SUB1 NOT = SPACES
             MOVE SS-QUAL1-SUB1 TO SUB-SSREL-QSUB1 (1 : 4). 
           IF SS-QUAL1-SUB2 NOT = SPACES
             MOVE SS-QUAL1-SUB2 TO SUB-SSREL-QSUB1 (5 : 4). 
           IF SS-QUAL1-SUB3 NOT = SPACES
             MOVE SS-QUAL1-SUB3 TO SUB-SSREL-QSUB1 (9 : 4). 
           IF SS-QUAL2 NOT = SPACES 
             MOVE SS-QUAL2 TO SUB-SSREL-QUAL2.
           IF SS-QUAL2-SUB1 NOT = SPACES
             MOVE SS-QUAL2-SUB1 TO SUB-SSREL-QSUB2 (1 : 4). 
           IF SS-QUAL2-SUB2 NOT = SPACES
             MOVE SS-QUAL2-SUB2 TO SUB-SSREL-QSUB2 (5 : 4). 
           IF SS-QUAL2-SUB3 NOT = SPACES
             MOVE SS-QUAL2-SUB3 TO SUB-SSREL-QSUB2 (9 : 4). 
           IF SS-QUAL3 NOT = SPACES 
             MOVE SS-QUAL3 TO SUB-SSREL-QUAL3.
           IF SS-QUAL3-SUB1 NOT = SPACES
             MOVE SS-QUAL3-SUB1 TO SUB-SSREL-QSUB3 (1 : 4). 
           IF SS-QUAL3-SUB2 NOT = SPACES
             MOVE SS-QUAL3-SUB2 TO SUB-SSREL-QSUB3 (5 : 4). 
           IF SS-QUAL3-SUB3 NOT = SPACES
             MOVE SS-QUAL3-SUB3 TO SUB-SSREL-QSUB3 (9 : 4). 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND ( CAT-LINE-TYPE = "Q" OR "B" ) 
           THEN 
             GO TO LOOP-SUB-QBSSREL 
           END-IF 
  
       CON-SUB-QBSSREL-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-SUB-23SSREL.
      * 
      * A NEW TYPE "2"/"3" SUBSCH SSREL LINE INCLUDES ALL LINES UNTIL 
      * A NEW LINETYPE. 
  
       CON-SUB-23SSREL. 
  
      * CLEAR OUT PREVIOUS "CONSOLID-LINE". 
           MOVE SPACES TO CONSOLID-LINE.
  
       LOOP-SUB-23SSREL.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF SS-QUAL4 NOT = SPACES 
             MOVE SS-QUAL4 TO SUB-SSREL-QUAL4.
           IF SS-QUAL4-SUB1 NOT = SPACES
             MOVE SS-QUAL4-SUB1 TO SUB-SSREL-QSUB4 (1 : 4). 
           IF SS-QUAL4-SUB2 NOT = SPACES
             MOVE SS-QUAL4-SUB2 TO SUB-SSREL-QSUB4 (5 : 4). 
           IF SS-QUAL4-SUB3 NOT = SPACES
             MOVE SS-QUAL4-SUB3 TO SUB-SSREL-QSUB4 (9 : 4). 
           IF SS-QUAL5 NOT = SPACES 
             MOVE SS-QUAL5 TO SUB-SSREL-QUAL5.
           IF SS-QUAL5-SUB1 NOT = SPACES
             MOVE SS-QUAL5-SUB1 TO SUB-SSREL-QSUB5 (1 : 4). 
           IF SS-QUAL5-SUB2 NOT = SPACES
             MOVE SS-QUAL5-SUB2 TO SUB-SSREL-QSUB5 (5 : 4). 
           IF SS-QUAL5-SUB3 NOT = SPACES
             MOVE SS-QUAL5-SUB3 TO SUB-SSREL-QSUB5 (9 : 4). 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND ( CAT-LINE-TYPE = "2" OR "3" ) 
           THEN 
             GO TO LOOP-SUB-23SSREL 
           END-IF 
  
       CON-SUB-23SSREL-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-DSTC.
      * 
      * A NEW TYPE "D" RECORD STRUCTURE LINE INCLUDES ALL LINES UNTIL A 
      * NEW LINETYPE.  RECORD AND GROUP STRUCTURE LINES ARE FORMATTED 
      * THE SAME, SO THEY SHARE THIS ROUTINE. 
  
       CON-RG-DSTC. 
  
      * CLEAR OUT PREVIOUS "CONSOLID-LINE". 
           MOVE SPACES TO CONSOLID-LINE.
  
       LOOP-RG-DSTC.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-DEPEND-QUAL3 NOT = SPACES 
             MOVE STC-DEPEND-QUAL3 TO RG-STC-QUAL3. 
           IF STC-DEPEND-QUAL4 NOT = SPACES 
             MOVE STC-DEPEND-QUAL4 TO RG-STC-QUAL4. 
           IF STC-DEPEND-QUAL5 NOT = SPACES 
             MOVE STC-DEPEND-QUAL5 TO RG-STC-QUAL5. 
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "D"
           THEN 
             GO TO LOOP-RG-DSTC 
           END-IF 
  
       CON-RG-DSTC-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-KSTC.
      * 
      * A NEW TYPE "K" RECORD STRUCTURE LINE IS INDICATED BY A NON-BLANK
      * KEYNAME OR KEYORDER FIELD.  RECORD AND GROUP STRUCTURE LINES ARE
      * FORMATTED THE SAME, SO THEY SHARE THIS ROUTINE. 
  
       CON-RG-KSTC. 
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * KEYNAME OR KEYORDER.
           MOVE SPACES TO CONSOLID-LINE.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR CAT-LINE-TYPE NOT = "K" 
             OR STC-OCC-KEY NOT = SPACES
             OR STC-OCC-KEYORDER NOT = SPACES 
  
             MOVE IDX-710 TO MSG-IDX
             MOVE CAT-LINE TO MSG-LINE
             MOVE "REC/GRP-STRUCTURE-KNAME/KORDER" TO MSG-NAME
             PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
             OR CAT-LINE-TYPE NOT = "K" 
           THEN 
             GO TO CON-RG-KSTC-XIT
           END-IF 
  
       LOOP-RG-KSTC.
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-OCC-KEY NOT = SPACES
             MOVE STC-OCC-KEY TO RG-STC-KNAME.
           IF STC-OCC-KEY-ALIAS NOT = SPACES
             MOVE STC-OCC-KEY-ALIAS TO RG-STC-KALIAS. 
           IF STC-OCC-KEYORDER NOT = SPACES 
             MOVE STC-OCC-KEYORDER TO RG-STC-KORDER.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND CAT-LINE-TYPE = "K"
             AND STC-OCC-KEY = SPACES 
             AND STC-OCC-KEYORDER = SPACES
           THEN 
             GO TO LOOP-RG-KSTC 
           END-IF 
  
       CON-RG-KSTC-XIT. 
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-RTSTC. 
      * 
      * A NEW TYPE "R"/"T" RECORD STRUCTURE LINE IS INDICATED BY A
      * NON-BLANK STC-NAME FIELD.  RECORD AND GROUP TYPE "R" AND "T"
      * STRUCTURE LINES ARE FORMATTED THE SAME, SO THEY SHARE THIS
      * ROUTINE.
  
       CON-RG-RTSTC.
  
      * FIND FIRST VALID LINE.  DIAGNOSE ANY PREVIOUS LINE WITHOUT
      * CATNAME.
           MOVE SPACES TO CONSOLID-LINE.
           MOVE ZERO TO RG-STC-RTQCNT.
           PERFORM UNTIL DATA-RETURN-CODE NOT = ZERO
             OR ( CAT-LINE-TYPE NOT = "R" AND NOT = "T" ) 
             OR STC-NAME NOT = SPACES 
  
             MOVE IDX-710 TO MSG-IDX
             MOVE "REC/GRP-STRUCTURE-RENAMES/THRU" TO MSG-NAME
             PERFORM ERROR-TYPE2 THRU ERROR-TYPE2-XIT 
  
             PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT 
             PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT 
           END-PERFORM
  
      * IF FOUND NO VALID LINE, EXIT. 
           IF DATA-RETURN-CODE NOT = ZERO 
             OR ( CAT-LINE-TYPE NOT = "R" AND NOT = "T" ) 
           THEN 
             GO TO CON-RG-RTSTC-XIT 
           END-IF 
  
       LOOP-RG-RTSTC. 
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-NAME NOT = SPACES 
             MOVE STC-NAME TO RG-STC-RTNAME.
           IF STC-R-T-ALIAS NOT = SPACES
             MOVE STC-R-T-ALIAS TO RG-STC-RTALIAS.
           IF STC-QUAL-COUNT NOT = ZERO 
             AND NOT = SPACES 
             MOVE STC-QUAL-COUNT TO RG-STC-RTQCNT.
           IF STC-QUAL1 NOT = SPACES
             MOVE STC-QUAL1 TO RG-STC-RTQUAL1.
           IF STC-QUAL2 NOT = SPACES
             MOVE STC-QUAL2 TO RG-STC-RTQUAL2.
           IF STC-QUAL3 NOT = SPACES
             MOVE STC-QUAL3 TO RG-STC-RTQUAL3.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND ( CAT-LINE-TYPE = "R" OR "T" ) 
             AND STC-NAME = SPACES
           THEN 
             GO TO LOOP-RG-RTSTC
           END-IF 
  
       CON-RG-RTSTC-XIT.
           EXIT.
  
  
      ******************************************************************
      * 
      * CON-RG-Q2STC. 
      * 
      * A NEW TYPE "Q"/"2" RECORD STRUCTURE LINE INCLUDES ALL LINES 
      * UNTIL A NEW LINETYPE.  RECORD AND GROUP STRUCTURE LINES ARE 
      * FORMATTED THE SAME, SO THEY SHARE THIS ROUTINE. 
  
       CON-RG-Q2STC.
  
      * CLEAR OUT PREVIOUS "CONSOLID-LINE". 
           MOVE SPACES TO CONSOLID-LINE.
  
       LOOP-RG-Q2STC. 
  
      * SAVE ALL VALUES GIVEN IN THIS LINE. 
           IF STC-QUAL4 NOT = SPACES
             MOVE STC-QUAL4 TO RG-STC-RTQUAL4.
           IF STC-QUAL5 NOT = SPACES
             MOVE STC-QUAL5 TO RG-STC-RTQUAL5.
  
      * MOVE NEXT LINE INTO "CAT-WORK" -- CHECK IF EXTENSION OF PREVIOUS
      * LINE. 
           PERFORM MOVE-NEXT-LINE THRU MOVE-NEXT-LINE-XIT.
           PERFORM CHECK-COMMENTS THRU CHECK-COMMENTS-XIT.
           IF DATA-RETURN-CODE = ZERO 
             AND ( CAT-LINE-TYPE = "Q" OR "2" ) 
           THEN 
             GO TO LOOP-RG-Q2STC
           END-IF 
  
       CON-RG-Q2STC-XIT.
           EXIT.
