C***   A1TOA5

       SUBROUTINE A1TOA5(CHARS,CINDEX,WDS,PUNC)
       IMPLICIT INTEGER(A-Z)
       CHARACTER CHARS, PUNC, WDS*8
       INTEGER CINDEX
       DIMENSION CHARS(70), WDS(2)

       LOGICAL  PUNCT
C       CHARACTER CHARS, PUNC, TOUPPR
       CHARACTER TOUPPR
C       DIMENSION CHARS(70),WDS(2)
C      REAL*8 WDS,WDUMY(1)
C       CHARACTER*8 WDS
       CHARACTER SPACE, COMMA, PERIOD, SEMICO, LOWERA, LOWERZ
       DATA SPACE,COMMA,PERIOD,SEMICO /' ',',','.',';'/
      DATA LOWERA,LOWERZ/'a','z'/  /* THOSE ARE LOWER CASE!

      CHARACTER C
       PUNCT(C)=C.EQ.SPACE.OR.C.EQ.COMMA.OR.C.EQ.SEMICO
     1     .OR.C.EQ.PERIOD.OR.C.EQ.CHAR(0)
       
       

       WDS(1)=' '
       WDS(2)=' '
       
C DEBUG ATTEMT (M.V.):
C       PRINT *, CINDEX

       DO 2 CINDEX=CINDEX,70
       IF(.NOT.PUNCT(CHARS(CINDEX)))GOTO 4
       IF(CHARS(CINDEX).EQ.CHAR(0))GOTO 8
2       CONTINUE
       PUNC=CHAR(0)
       RETURN

4     DO 10 I=CINDEX,70
      IF(PUNCT(CHARS(I)))GOTO 8
      CHARS(I) = TOUPPR( CHARS( I ) )
C      IF(CHARS(I).GE.LOWERA.AND.CHARS(I).LE.LOWERZ)
C     1   CHARS(I)=AND(CHARS(I),:157777)
C     1     CHARS(I) = TOUPPR( CHARS(I ) )
10    CONTINUE
C      ENCODE(16,101,WDS)(CHARS(I),I=CINDEX,70)
C THIS IS AN ATTEMPT TO REMOVE THE 'MORE THAN SIX CHARS' BUG (M.V.)
      FINISH=70
      IF ((FINISH-CINDEX).GT.6) FINISH=CINDEX+5
C A TERRIBLE HACK, I KNOW, BUT GDB DOESN'T ALLOW ME TO DEBUG (M.V.)
      WRITE( UNIT=WDS, FMT=101 ) (CHARS(I),I=CINDEX,FINISH)
      PUNC=CHAR(0)
      CINDEX=71
      RETURN
8     PUNC=CHARS(I)
      FINISH=I-1
C      ENCODE(16,101,WDS)(CHARS(J),J=CINDEX,FINISH)
C THIS IS AN ATTEMPT TO REMOVE THE 'MORE THAN SIX CHARS' BUG (M.V.)
      IF ((FINISH-CINDEX).GT.5) FINISH=CINDEX+5

      WRITE( UNIT=WDS, FMT=101 ) (CHARS(J),J=CINDEX,FINISH)
      CINDEX=I
      RETURN
101   FORMAT(2(6A1,2X))
       END