C C $Id: rdword.F,v 1.2 1998/07/16 16:40:35 jjv5 Exp arjan $ C C------------------------------------------------------------------------ SUBROUTINE RDWORD(STRING,ISTART,ISTOP) C C LOCATES THE NEXT WORD IN STRING STARTING AT STRING(ISTART:ISTART). C ON RETURN ISTART AND ISTOP WILL BE UPDATED AND THE WORD WILL BE C IN STRING(ISTART:ISTOP). IF THERE ARE NO MORE WORDS IN THE STRING, C THEN BOTH ISTART AND ISTOP WILL BE RETURNED WITH VALUES OF ZERO. C CHARACTER STRING*(*) LOGICAL INWORD C C GET DECLARED LENGTH OF STRING AND FIND THE NEXT CONTIGUOUS BLOCK C OF NONBLANK CHARACTERS. C IBEGIN = MAX(ISTART,1) IEND = LEN(STRING) IF(IEND.LT.IBEGIN)THEN ISTART = 0 ISTOP = 0 RETURN ENDIF INWORD = .FALSE. IBEGIN = ISTART DO 100 I=IBEGIN,IEND IF(STRING(I:I).EQ.' ')THEN IF(INWORD)THEN ISTOP = I-1 RETURN ENDIF ELSE IF(.NOT.INWORD)THEN INWORD = .TRUE. ISTART = I ENDIF ENDIF 100 CONTINUE C C IF WE GET HERE, THEN EITHER THE WORD FOUND EXTENDS ALL THE WAY TO C THE END OF THE STRING, OR NO WORD WAS FOUND IN THE REMAINING C PORTION OF THE STRING. C IF(INWORD)THEN ISTOP = IEND ELSE ISTART = 0 ISTOP = 0 ENDIF RETURN END