C===Sample driver for STRIP subprogram. C This file: http://ftp.aset.psu.edu/pub/ger/fortran/hdk/strip.for C CHARACTER*80 STRIP, LINE CHARACTER*11 RESULT DATA LINE/' +TEST-LINE+ '/ CALL STRIP(LINE,'B',IBEG,IEND) WRITE(*,*) LINE(IBEG:IEND) STOP END SUBROUTINE STRIP(LINE,FLAG,IBEG,IEND) C===Strip of Leading, Trailing, or Both leading & trailing blanks from C LINE and return the result. FLAG is 'L','T', or 'B' accordingly. C HDK - September 16, 1988. CHARACTER*(*) LINE CHARACTER*1 FLAG INTEGER IBEG,IEND C---Case: Remove Leading or Both leading and trailing blanks. IF(FLAG.EQ.'L'.OR.FLAG.EQ.'B') THEN DO 1 IBEG=1,LEN(LINE) IF(LINE(IBEG:IBEG).NE.' ') GOTO 2 1 CONTINUE IBEG=0 ELSE IBEG=1 ENDIF C---Case: Remove Trailing or Both leading and trailing blanks. 2 IF(FLAG.EQ.'T'.OR.FLAG.EQ.'B') THEN DO 3 IEND=LEN(LINE),1,-1 IF(LINE(IEND:IEND).NE.' ') GOTO 4 3 CONTINUE IEND=0 ELSE IEND=LEN(LINE) ENDIF C---Check for valid FLAG values. IF(INDEX('LTB',FLAG).EQ.0) THEN WRITE(6,*) '$$ERROR: STRIP second argument is invalid:',FLAG STOP 987 ENDIF C---All blank LINE is invalid. 4 IF(IBEG.EQ.0.OR.IEND.EQ.0) THEN WRITE(6,*) '$$ERROR: STRIP first argument is blank.' STOP 986 ENDIF C---Return pointers in LINE so it's stripped as defined by FLAG value. RETURN END