CTITLESADTRM -- DETERMINE MATCHES BETWEEN MODEL BIN AND ACTUAL BIN 00000101 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. O'NEILL 00000201 CA DESIGNER D. O'NEILL 00000301 CA LANGUAGE S/370 FORTRAN H 00000401 CA WRITTEN 05-01-84 00000501 C REVISED 03-11-88 TJT. OPTIMIZE DO LOOP. 00000602 C REVISED MM-DD-YY PROGRAMMER 00000702 CA 00000801 CA 00000901 CA CALL SADTRM (SORT, NMEMB, NTRCS, NHLNNO, NHORTN, NHLNM1, NHLNM2, 00001001 CA NRLINE, NASSN, DTRCS, ETRCS, EQUIV, PRNTSW, KPPRNT, *) 00001101 CA 00001201 CA IN/OUT ARGUMENT TYPE DESCRIPTION 00001301 CA 00001401 CA IN/OUT SORT I4 INFORMATION TO BE CHECKED AND FLAGGED 00001501 CA IN NMEMB I4 NUMBER OF ELEMENTS 00001601 CA IN NTRCS I4 NUMBER OF TRACES 00001701 CA IN NHLNNO I4 INDEX FOR 3D LINE NUMBER 00001801 CA IN NHORTN I4 TRACE NUMBER INDEX 00001901 CA IN NHLNM1 I4 INDEX FOR 1ST WORD OF SHOT LINE NAME 00002001 CA IN NHLNM2 I4 INDEX FOR 2ND WORD OF SHOT LINE NAME 00002101 CA IN NRLINE I4 RELATIVE LINE NUMBER INDEX 00002201 CA IN NASSN I4 THE TRACE ASSIGNMENT FLAG INDEX 00002301 CA IN DTRCS I4 DESIRED NUMBER OF TRACES IN A PERFECT BIN 00002401 CA IN ETRCS I4 NUMBER OF EQUIVALENT TRACES 00003001 CA IN EQUIV I4 ARRAY USED TO HOLD EQUIVALENT TRACE 00004001 CA NUMBERS FOR THE MODEL BIN. 00005001 CA IN PRNTSW I4 PRINT SWITCH 00006001 CA IN KPPRNT I4 FORTRAN UNIT NUMBER FOR PRINTED OUTPUT 00006101 CA 00006201 CA THIS SUBROUTINE DETERMINES WHICH TRACES ARE REDUNDANT AND FLAGS 00006301 CA THEM WITH A -1 IN THE NASSN POSITION OF THE SORT ARRAY. 00006401 CAEND 00006901 C 00008001 C EJECT 00009101 C LOCAL OR INTERNAL ARRAYS 00009201 C 00009301 C ARGUMENT TYPE LENGTH DESCRIPTION 00009401 C SORT I4 (NMEMB, A TWO-DIMENSIONAL ARRAY CONTAINING THE 00009501 C NTRCS) INFORMATION TO BE CHECKED AND FLAGGED; ON 00009601 C RETURN, ELEMENT "NASSN" CONTAINS THE FLAG 00009701 C EQUIV I4 ARRAY USED TO HOLD EQUIVALENT TRACE NUMBERS 00009801 C FOR THE MODEL BIN. SET UP WITH 'ELEMENTS' 00009901 C (FIRST INDEX) HOLDING THE EQUIVALENT TRACE 00010001 C NUMBERS FOR A PARTICULAR TRACE NUMBER AND 00010101 C 'MEMBERS' (SECOND INDEX) HOLDING SEPARATE 00010201 C LISTS OF EQUIVALENT TRACE NUMBERS. FOR 00010301 C EXAMPLE: ELEMENTS 00010401 C M 1 2 TRACES 1 & 2 EQUIV. 00010501 C E 3 4 3 & 4 00010601 C M 5 6 ETC. 00010701 C B 7 8 00010801 C E 9 10 00010901 C R 11 12 00011001 C S 13 14 00011101 C 00011201 C LOCAL OR INTERNAL VARIABLES AND CONSTANTS 00011301 C 00011401 C ARGUMENT TYPE DESCRIPTION 00011501 C J I4 COUNTER INDEX FOR DO LOOP 00011701 C K I4 COUNTER INDEX FOR DO LOOP 00011801 C MPTS I4 COUNTS NUMBER OF TRACES FOUND IN THE CURRENT 00011901 C PASS OF COMPARING MODEL WITH ON-HAND TRACES 00012001 C TKNT I4 USED AS INDEX IN LOOP 50; POINTS TO CURRENT 00012101 C TRACE HEADER 00012201 C BLANK I4 A BLANK CHARACTER 00012301 C DTRCS I4 DESIRED NUMBER OF TRACES IN A PERFECT BIN 00012401 C EQTRC I4 INDEX OF EQUIVALENT TRACE 00012501 C ETRCS I4 NUMBER OF TRACE NUMBERS WHICH ARE EQUIVALENT 00012601 C E.G., IF TRACES 1 AND 2 ARE EQUIVALENT, TRACES 00012701 C 3 AND 4 ARE EQUIVALENT, ETC., THEN ETRCS = 2 00012801 C NASSN I4 INDEX INTO "SORT" OF THE TRACE ASSIGNMENT FLAG 00012901 C NMEMB I4 FIRST DIMENSION OF "SORT"; NUMBER OF ELEMENTS 00013001 C NTRCS I4 SECOND DIMENSION OF "SORT"; NUMBER OF TRACES 00013101 C 1 => THE TRACE BELONGS IN ITS CURRENT BIN 00013201 C -1 => THE TRACE IS A DUPLICATE AND MAY BE BORROWED 00013301 C KPPRNT I4 FORTRAN UNIT NUMBER FOR PRINTED OUTPUT 00013401 C NHLNM1 I4 INDEX INTO "SORT" W/ FIRST WORD OF LINE NAME 00013701 C NHLNM2 I4 INDEX INTO "SORT" W/ SECOND WORD OF LINE NAME 00013801 C NHLNNO I4 INDEX OF 3D LINE NUMBER 00013901 C NHORTN I4 INDEX INTO "SORT" OF THE TRACE NUMBERS 00014001 C NRLINE I4 INDEX INTO "SORT" OF THE RELATIVE LINE NUMBER 00014101 C PLINE1 I4 HOLDS THE FIRST WORD OF THE LINE NAME (THLNM1) 00014201 C OF THE MOST RECENT TRACE ON HAND 00014301 C PLINE2 I4 HOLDS THE SECOND WORD OF THE LINE NAME 00014401 C (THLNM2) OF THE MOST RECENT TRACE ON HAND 00014501 C PRNTSW I4 PRINT CONTROL SWITCH; TO ALLOW PRINT, PRNTSW = 1 00015001 C TKNTP1 I4 USED AS LOWER LIMIT IN LOOP 40; POINTS TO 00017101 C TRACE HEADER AFTER CURRENT TRACE HEADER 00017201 C 00017801 C 00017901 C********************************************************************** 00018400 C 00019000 SUBROUTINE SADTRM(SORT,NMEMB,NTRCS,NHLNNO,NHORTN,NHLNM1,NHLNM2, 01690001 & NRLINE,NASSN,DTRCS,ETRCS,EQUIV,PRNTSW,KPPRNT,*) 01700001 IMPLICIT INTEGER (A-Z) 01710000 INTEGER SORT(NMEMB,NTRCS) 01720000 INTEGER BLANK /' '/ 01721001 INTEGER EQUIV(ETRCS,DTRCS) 01730001 PLINE1 = BLANK 01740001 PLINE2 = BLANK 01750001 C 01860000 C DETERMINE MATCHES BETWEEN MODEL AND ACTUAL BIN CONTENTS 01870000 C 01880000 DO 50 TKNT = 1,NTRCS 01890001 C IF THIS TRACE HAS ALREADY BEEN FLAGGED, SKIP THIS STEP 01900000 IF(SORT(NASSN,TKNT) .NE. 0)GO TO 50 01910001 C IF THIS TRACE IS NOT A MODEL BIN TRACE, SKIP THIS STEP 01910101 IF(SORT(NHLNNO,TKNT) .NE. 0)GO TO 50 01911001 C 01920000 C FIND TRACE EQUIVALENT TABLE ENTRY FOR THIS TRACE NUMBER 01930000 C 01940000 DO 10 J = 1,DTRCS 01950001 DO 10 K = 1,ETRCS 01960001 IF(SORT(NHORTN,TKNT) .NE. EQUIV(K,J))GO TO 10 01970001 EQTRC = J 01980001 GO TO 20 01990000 10 CONTINUE 02000000 20 CONTINUE 02010000 C 02020000 C DETERMINE MATCHES BETWEEN MODEL AND BIN FOR THIS TRACE NUMBER 02030000 C 02050000 IF(TKNT .EQ. NTRCS) GO TO 50 02060001 TKNTP1 = TKNT + 1 02061001 MPTS = 0 02062001 C 02063001 DO 45 J = TKNTP1, NTRCS 02070001 IF(SORT(NASSN,J) .NE. 0) GO TO 45 02080001 IF(SORT(NHLNNO,J) .EQ. 0) GO TO 45 02081001 DO 40 K = 1,ETRCS 02090001 IF(SORT(NHORTN,J) .NE. EQUIV(K,EQTRC)) GO TO 40 02100001 PLINE1 = SORT(NHLNM1,J) 02110001 PLINE2 = SORT(NHLNM2,J) 02120001 SORT(NASSN,J) = -1 02140001 MPTS = MPTS + 1 02141001 40 CONTINUE 02150000 45 CONTINUE 02150101 C 02150201 SORT(NHLNM1,TKNT) = PLINE1 02151001 SORT(NHLNM2,TKNT) = PLINE2 02152001 IF(MPTS .NE. 0) SORT(NASSN,TKNT) = -1 02160001 50 CONTINUE 02210000 C 02211001 RETURN 02220000 END 02230000