C  =====================================================================
C  pgm: SH2ST1 .. Get next string (letters only) and right pad blank
C
C  use:     CALL SH2ST1(KHAR,KHPOS,NOFLET,KHLET)
C
C  i/o: KHAR ...... last buffer char obtained - CHAR*1
C  i/o: KHPOS ..... last char loc: 2=eol,1=err-eol,0=eof,neg=err - INT
C  out: NOFLET .... number of non-blank chars found - INT
C  out:             (set to -1 if bad char is found)
C  out: KHLET ..... string of next letters found, blnk padded - CHAR*4
C  out:             (set to blank if bad char is found)
C  out:             (Note, search stops at end of string length)
C
C  rqd: SHGETK
C
C  cmt: Routine will NOT process if current char is "end-of-line".
C  cmt: "KHAR" must be guaranteed not blank if "KHPOS" is less than 2.
C  =====================================================================
      SUBROUTINE SH2ST1(KHAR,KHPOS,NOFLET,KHLET)

      EXTERNAL       SHGETK

      INTRINSIC      LEN
      INTEGER        LEN

      CHARACTER*4    KHLET
      CHARACTER*1    KHAR
      INTEGER        KHPOS,NOFLET,NCHAR,MAX
C
C    ================================= RCS keyword statements ==========
      CHARACTER*68     RCSKW1,RCSKW2
      DATA             RCSKW1,RCSKW2 /                                 '
     .$Source: /fs/hseb/ob5/rfc/ofs/src/shefpars_driv/RCS/sh2st1.f,v $
     . $',                                                             '
     .$Id: sh2st1.f,v 1.2 1996/03/18 22:53:55 page Exp $
     . $' /
C    ===================================================================
C

        KHLET = '    '
        NCHAR = 0

C                   If current char position is in a message line

        IF (KHPOS .GT. 2) THEN

C                   Loop while char is not blank nor is output str full

          MAX = LEN(KHLET)
   30     IF (KHAR.EQ.' ' .OR. KHPOS.LE.2 .OR. NCHAR.GE.MAX) GOTO 40

C                   If cap letter place in string, get next char

            IF (KHAR.GE.'A' .AND. KHAR.LE.'Z') THEN
              NCHAR = NCHAR+1
              KHLET(NCHAR:NCHAR) = KHAR
              CALL SHGETK(KHAR,KHPOS)

C                   Else output blank string and force end of loop

            ELSE
              NCHAR = -1
              MAX   = -1
              KHLET = '    '
            ENDIF

            GOTO 30
   40     CONTINUE

        ENDIF

C                   Output number of chars in string, else -1

        NOFLET = NCHAR

      RETURN
      END