SpectraRust/tlusty/extracted/getwrd.f
2026-03-19 14:05:33 +08:00

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