CTITLEUSNOC2 -- LOCATE NEXT OCCUR. OF CHAR STRING IN CHAR VARIABLE C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR J. M. PONTON CA DESIGNER J. M. PONTON CA LANGUAGE VSFORTRAN CA SYSTEM IBM S/370 CA WRITTEN 11-20-84 C REVISED MO-DA-YR BY PROGRAMMER FOR REASON CA CA CALL USNOC2(CARD, FRSCOL, CHAR, COL, &RET) CA CA IN/OUT ARGUMENT TYPE DESCRIPTION CA ------ -------- ---- ----------- CA IN CARD CHAR BUFFER TO BE SCANNED. CA CA IN FRSCOL I4 FIRST CHARACTER OF BUFFER TO BE SCANNED. CA CA IN CHAR CHAR CHARACTER STRING TO SEARCH FOR. CA CA OUT COL I4 BYTE OF BUFFER IN WHICH THE STRING WAS CA FOUND. CA CA IN &RET RETURN ADDRESS IN CASE THE STRING CANNOT CA BE FOUND. CA CA CA THIS ROUTINE SEARCHES THE BUFFER FOR THE NEXT OCCURRENCE OF CA THE STRING 'CHAR'. IF IT IS FOUND, THE BEGINNING BYTE IN WHICH CA IT WAS FOUND IS RETURNED IN 'COL'. IF IT IS NOT FOUND, THE SUB- CA ROUTINE RETURNS TO THE ADDRESS IN THE 6TH ARGUMENT. CA CA C EJECT C SUBROUTINE USNOC2(CARD, FRSCOL, CHAR, COL, *) C IMPLICIT INTEGER (A-Z) CHARACTER*(*) CARD CHARACTER*(*) CHAR C NC = USLEN(CARD) NCHAR = USLEN(CHAR) C LCOL = NC - NCHAR + 1 IF (FRSCOL .GT. LCOL) GO TO 20 C C PERFORM SEARCH. C DO 10 * I = FRSCOL, LCOL ISAVE = I IF (CARD(I:I+NCHAR-1) .EQ. CHAR(1:NCHAR)) GO TO 30 10 CONTINUE C C STRING WASN'T FOUND. C 20 CONTINUE RETURN 1 30 CONTINUE COL = ISAVE RETURN END