      SUBROUTINE CMSKIP(LINE,SCANPT,  SCNTRM)
NOLINEUP
C
C     SKIP OVER NOISE AND COMMENT FIELD(S), IF ANY, I.E. --
C     IF FIRST NON-NOISE CHAR AFTER LINE(SCANPT) IS <COMENT>, RETURN
C     WITH SCNTRM POINTING AT FIRST NON-NOISE CHAR AFTER CLOSING
C     <COMENT> OR AT <EOL>.  ELSE SCNTRM=SCANPT.
C
C     INPUTS--
C     . LINE() - COMMAND LINE - CHAR*1(N)
C     . SCANPT - STARTING SCAN POINTER
C
C     OUTPUT--
C     . SCNTRM - ENDING SCAN POINTER
C
INCLUDE (SCANLIB.PARAMS)
INCLUDE (SCANLIB.CMTABL)
      CHARACTER*1 LINE(1)
      INTEGER SCANPT,  SCNTRM
C
      SCAN = SCANPT
      DO (CHECK FOR PUNCTUATION)
      DO WHILE (TRMTYP.EQ.NOISE)
      SCAN = SCAN + 1
      DO (CHECK FOR PUNCTUATION)
      END WHILE
C
      DO WHILE (TRMTYP.EQ.COMENT)
      SCAN = SCAN + 1
      DO (CHECK FOR PUNCTUATION)
      DO WHILE (SCAN.LT.EOL .AND. TRMTYP.NE.COMENT)
      SCAN = SCAN + 1
      DO (CHECK FOR PUNCTUATION)
      END WHILE
C
      IF (SCAN.LT.EOL) THEN
      SCAN = SCAN + 1
      DO (CHECK FOR PUNCTUATION)
      DO WHILE (TRMTYP.EQ.NOISE)
      SCAN = SCAN + 1
      DO (CHECK FOR PUNCTUATION)
      END WHILE
      ENDIF
      END WHILE
      SCNTRM = SCAN
      RETURN
C
C$CCC ----------------------------------
C
      PROCEDURE (CHECK FOR PUNCTUATION)
      NDXPUN = 0
      DO FOR I=1,PNTBSZ
      IF (LINE(SCAN).EQ.PUNTBL(I)) NDXPUN = I
      END FOR
      IF (NDXPUN.LE.0) THEN
      TRMTYP = 0
      ELSE
      TRMTYP = PNCODE(NDXPUN)
      ENDIF
      IF (SCAN.GE.EOL) TRMTYP = CMTERM
      END PROCEDURE
C
      END
