48 lines
969 B
Fortran
48 lines
969 B
Fortran
SUBROUTINE GETWRD(TEXT,K0,K1,K2)
|
|
C
|
|
C FINDS NEXT WORD IN TEXT FROM INDEX K0. NEXT WORD IS TEXT(K1:K2)
|
|
C THE NEXT WORD STARTS AT THE FIRST ALPHANUMERIC CHARACTER AT K0
|
|
C OR AFTER. IT ENDS WITH THE LAST ALPHANUMERIC CHARACTER IN A ROW
|
|
C FROM THE START
|
|
C
|
|
C TAKEN FROM MULTI - M. CARLSSON (1976)
|
|
C
|
|
C INCLUDE 'IMPLIC.FOR'
|
|
PARAMETER (MSEPAR=7)
|
|
CHARACTER*(*) TEXT
|
|
CHARACTER SEPAR(MSEPAR)
|
|
DATA SEPAR/' ','(',')','=','*','/',','/
|
|
C
|
|
K1=0
|
|
DO I=K0,LEN(TEXT)
|
|
IF(K1.EQ.0) THEN
|
|
DO J=1,MSEPAR
|
|
IF(TEXT(I:I).EQ.SEPAR(J)) GO TO 10
|
|
END DO
|
|
K1=I
|
|
C
|
|
C NOT START OF WORD
|
|
C
|
|
10 CONTINUE
|
|
ELSE
|
|
DO J=1,MSEPAR
|
|
IF(TEXT(I:I).EQ.SEPAR(J)) GO TO 20
|
|
END DO
|
|
END IF
|
|
END DO
|
|
C
|
|
C NO NEW WORD. RETURN K1=K2=0
|
|
C
|
|
K1=0
|
|
K2=0
|
|
GO TO 30
|
|
C
|
|
C NEW WORD IN TEXT(K1:I-1)
|
|
C
|
|
20 CONTINUE
|
|
K2=I-1
|
|
C
|
|
30 CONTINUE
|
|
RETURN
|
|
END
|