ADAS Subroutine xxfchr
SUBROUTINE XXFCHR( CSTRNG , SSTRNG, IFIRST , ILAST )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: XXFCHR *********************
C
C PURPOSE: TO IDENTIFY THE FIRST AND LAST OCCURRENCE OF SSTRNG IN
C CSTRNG, THE VALUES OF WHICH ARE IFIRST , ILAST.
C
C - IF NO OCCURRENCE OF SSTRNG THEN IFIRST=ILAST=0
C - IF ONLY ONE OCCURRENCE OF SSTRNG THEN IFIRST=ILAST>0
C - IF OVER ONE OCCURRENCE OF SSTRNG THEN IFIRST>ILAST>0
C
C NOTE : ANY TRAILING BLANKS IN THE SEARCH STRING (SSTRNG) ARE
C IGNORED.
C
C CALLING PROGRAM: GENERAL USE
C
C SUBROUTINE:
C
C INPUT : (C*(*)) CSTRNG = INPUT STRING FOR INTERROGATION
C INPUT : (C*(*)) SSTRNG = INPUT SEARCH STRING
C
C OUTPUT: (I*4) IFIRST = BYTE POSITION OF FIRST OCCURRENCE OF SSTRNG
C IN CSTRNG.
C OUTPUT: (I*4) ILAST = BYTE POSITION OF LAST OCCURRENCE OF SSTRNG
C IN CSTRNG.
C
C (I*4) ILENC = LENGTH OF 'CSTRNG' STRING IN BYTES
C (I*4) ILENS = POSITION OF LAST NON-BLANK BYTE IN SSTRNG
C (I*4) I = GENERAL USE - INCLUDING DUMP FOR UNWANTED
C OUTPUT FROM XXSLEN SUBROUTINE.
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C ------------------------------------------------------------
C XXSLEN ADAS FIND FIRST/LAST NONBLANK BYTES IN STRING
C
C NOTE : ANY TRAILING BLANKS IN THE SEARCH STRING (SSTRNG) ARE
C IGNORED.
C
C
C AUTHOR: LALIT JALOTA (TESSELLA SUPPORT SERVICES PLC)
C
C DATE : 27/10/94
C
C UPDATE: 06/03/95 - REVISED BY PAUL BRIDEN (TESSELLA SUPPORT SERVICES)
C 1) ANALYSE ALL OF CSTRNG (NOT JUST NON-BLANK
C PART).
C 2) ONLY IGNORE TRAILING BLANKS FOR SSTRNG
C (KEEP LEADING BLANKS).
C 3) MODIFY DO LOOP INDEX RANGE TO ENSURE THAT
C YOU DO NOT GO BEYOND THE END OF CSTRNG.
C 4) VERIFY LENGTH OF SSTRNG IS NON-ZERO.
C
C UPDATE: 17/05/07 - Allan Whiteford
C Updated comments as part of subroutine
C documentation procedure.
C
C-----------------------------------------------------------------------
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
CHARACTER*(*) CSTRNG, SSTRNG
INTEGER IFIRST, ILAST