      SUBROUTINE CMTOKN(LINE,SCANPT,  SCNTRM,TOKEN,NCHARS,TRMTYP)
NOLINEUP
C
C     SCAN FOR A TOKEN.  A TOKEN IN THIS ROUTINE IS A NON-NULL
C     STRING OF NON-PUNCTUATION CHARACTERS, NOT INCLUDING
C     COMMENT STRINGS.  THIS ROUTINE SCANS UNTIL A TOKEN IS FOUND,
C     OR UNTIL A TERMINATOR OF LEVEL <ARGSEP> OR HIGHER IS REACHED.
C     SEE ALSO SUBROUTINE CMPOSL.
C
C     INPUTS--
C     . LINE() - INPUT LINE - CHAR*1(N)
C     . SCANPT - INDEX TO LINE OF FIRST CHARACTER TO SCAN
C
C     OUTPUTS--
C     . SCNTRM - INDEX TO LINE OF CHARACTER WHICH STOPPED SCAN
C     . TOKEN()- CHARACTERS COMPRISING THE TOKEN - CHAR*1(NCHARS)
C     . NCHARS - NUMBER OF CHARACTERS IN TOKEN
C     . TRMTYP - PUNCTUATION TYPE CODE OF LINE(SCNTRM)
C
INCLUDE (SCANLIB.PARAMS)
INCLUDE (SCANLIB.CMTABL)
C
      CHARACTER*1 LINE(1),  TOKEN(TOKNSZ)
      INTEGER SCANPT,  SCNTRM,NCHARS,TRMTYP
      INTEGER SCAN
C
      SCAN = SCANPT
      DO UNTIL (NCHARS.GT.0 .OR. TRMTYP.GE.ARGSEP)
      CALL CMPOSL(LINE,SCAN,  SCNTRM,TOKEN,NCHARS,TRMTYP)
      SCAN = SCNTRM + 1
      END UNTIL
      RETURN
      END
