CTITLEUSNOCC -- LOCATE NEXT OCCURRENCE OF CHAR STRING IN A BUFFER C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR J. M. PONTON CA DESIGNER J. M. PONTON CA LANGUAGE FORTRAN CA SYSTEM IBM AND CRAY CA WRITTEN 11-20-84 C REVISED MO-DA-YR BY PROGRAMMER FOR REASON CA CA CALL USNOCC(CARD, LCARD, FRSCOL, CHAR, NCHAR, COL, &RET) CA CA IN/OUT ARGUMENT TYPE DESCRIPTION CA ------ -------- ---- ----------- CA IN CARD A4 BUFFER TO BE SCANNED. CA CA IN LCARD I4 NUMBER OF FULLWORDS IN BUFFER. CA CA IN FRSCOL I4 FIRST CHARACTER OF BUFFER TO BE SCANNED. CA CA IN CHAR A4 CHARACTER STRING TO SEARCH FOR. CA CA IN NCHAR I4 NUMBER OF CHARACTERS IN 'CHAR'. 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 USNOCC(CARD, LCARD, FRSCOL, CHAR, NCHAR, COL, *) C IMPLICIT INTEGER (A-Z) DIMENSION CARD(1) C NC = LCARD * 4 LCOL = NC - NCHAR + 1 IF (FRSCOL .GT. LCOL) GO TO 20 C C PERFORM SEARCH. C DO 10 * I = FRSCOL, LCOL ISAVE = I IF (S1CPCH(CARD, I, CHAR, 1, NCHAR) .EQ. 0) GO TO 30 10 CONTINUE C C STRING WASN'T FOUND. C 20 CONTINUE RETURN 1 30 CONTINUE COL = ISAVE RETURN END