SUBROUTINE ST_RXBL ( string, outstr, length, iret ) C************************************************************************ C* ST_RXBL * C* * C* This subroutine removes extra spaces and tabs from a string. Only * C* single blanks will separate substrings. The input and output * C* strings may be the same variable. * C* * C* ST_RXBL ( STRING, OUTSTR, LENGTH, IRET ) * C* * C* Input parameters: * C* STRING CHAR* String * C* * C* Output parameters: * C* OUTSTR CHAR* String without blanks * C* LENGTH INTEGER Length of output string * C* IRET INTEGER Return code * C* 0 = normal return * C** * C* Log: * C* M. desJardins/GSFC 9/88 * C* D. Kidwell/NCEP 10/96 Ported to Cray * C* K. Brill/HPC 6/99 Assign character constants * C************************************************************************ CHARACTER*(*) string, outstr CHARACTER * 1 CHTAB, CHSPAC C----------------------------------------------------------------------- CHSPAC = CHAR (32) CHTAB = CHAR (9) length = 0 iret = 0 C C* Remove leading spaces and tabs. C CALL ST_LDSP ( string, outstr, isiz, iret ) IF ( isiz .le. 0 ) RETURN C C* Remove extra spaces. C ispac = 0 length = 0 DO j = 1, isiz IF ( ( outstr (j:j) .ne. CHSPAC ) .and. + ( outstr (j:j) .ne. CHTAB ) ) THEN length = length + 1 outstr (length:length) = outstr (j:j) ispac = 0 ELSE IF ( ispac .eq. 0 ) THEN length = length + 1 outstr (length:length) = ' ' ispac = 1 END IF END IF END DO C C* Make sure the end of the string is blank. C lens = LEN ( outstr ) IF ( lens .gt. length ) outstr ( length+1 : ) = ' ' C* RETURN END