Annotation of researchv10no/cmd/pfort/CHK1.f, revision 1.1

1.1     ! root        1:       INTEGER FUNCTION CHK1(IR, IE)
        !             2: C
        !             3: C      PROGRAM UNIT AT LAT(IR) CALLS PROGRAM UNIT AT LAT(IE)
        !             4: C      CHK1 RETURNS 1 IF REF OK ELSE 0
        !             5: C      CHECKS FOR INCONSISTENT SYBPGM USAGE, CORRECT NO. OF
        !             6: C      ARGS, CORRECT USAGE MATCH UP OF ARGS
        !             7: C
        !             8:       INTEGER PREF, REF, PDSA, DSA, PLAT, SYMLEN, IBR(1)
        !             9:       COMMON /CREF/ LREF, PREF, REF(100)
        !            10:       COMMON /CTABL/ LDSA, PDSA, DSA(5000)
        !            11:       COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
        !            12:       COMMON /PARAMS/ I1, I2, I3, SYMLEN, I4, I5, I6
        !            13:       CHK1 = 0
        !            14: C      CHECKS FOR SELF RECURSION
        !            15:       IF (IE.NE.IR) GO TO 10
        !            16:       CALL ERROR2(24H RECURSIVE CALL OF SELF , 24, REF(3), -1, 1, 1)
        !            17:       GO TO 100
        !            18: C      CHECKS FOR USAGE OF SUBPGM CONSISTENT WITH DEF
        !            19:    10 I = IE + SYMLEN + 6
        !            20:       N = MOD(LAT(I),8)
        !            21:       IF (N.EQ.REF(4) .OR. N.EQ.6 .AND. REF(4).EQ.1) GO TO 20
        !            22:       CALL ERROR2(38H INCONSISTENT REFERENCE TO SUBPROGRAM , 38,
        !            23:      *  LAT(IE), 1, 1, 0)
        !            24:       CALL ERROR2(1H1, 0, REF(3), -1, 0, 1)
        !            25:       GO TO 100
        !            26: C      CHECKS FOR CORRECT NO. ARGS
        !            27:    20 I = IE + SYMLEN
        !            28:       IF (LAT(I).EQ.REF(1)/2) GO TO 30
        !            29:       CALL ERROR2(42H INCORRECT NUMBER OF ARGS IN REFERENCE TO , 42,
        !            30:      *  LAT(IE), 1, 1, 0)
        !            31:       CALL ERROR2(1H1, 0, REF(3), -1, 0, 1)
        !            32:       GO TO 100
        !            33: C      ARE DONE WITH REF IF IT HAS NO ARGS
        !            34:  30   CHK1 = 1
        !            35:       IF(LAT(I)) 100, 100, 40
        !            36: C      CHECK USAGES OF ARGS IN CALL VS USAGES OF ARGS IN DEF
        !            37: C      N POINTS TO DUMMY ARG ENTRY
        !            38:    40 I = LAT(I)
        !            39:       N = IE + SYMLEN + 1
        !            40:       L = 5
        !            41:       DO 80 K=1,I
        !            42:         MD = IGATT2(LAT(N),8)
        !            43:         IF (MD.NE.13 .AND. MD.NE.5 .AND. MD.NE.6) GO TO 60
        !            44: C      HAVE A PROC ARG IN DEF
        !            45: C      NEED A PROC ARG IN REF
        !            46:         IF (REF(L).EQ.0) GO TO 50
        !            47:         MR = IGATT1(REF(L),8)
        !            48:         IF (MR.EQ.13 .OR. MR.EQ.6 .OR. MR.EQ.5) GO TO 70
        !            49:  50   IBR(1) = K
        !            50:       CALL ERROR2(36H INCOMPATIBLE USAGE ASSOCIATED WITH ,36,IBR,-2,1,0)
        !            51:       CALL ERROR2(17H IN REFERENCE TO ,17,LAT(IE), 1, 0, 0)
        !            52:       CALL ERROR2(1H1, 0, REF(3), -1, 0, 1)
        !            53:       CHK1 = 0
        !            54:       GOTO 70
        !            55: C      HAVE VARIABLE OR ARRAY AS ARG IN DEF
        !            56: C      NEED SAME IN REF
        !            57:    60   IF (REF(L).EQ.0) GO TO 70
        !            58:         MR = IGATT1(REF(L),8)
        !            59:         IF (MR.EQ.13 .OR. MR.EQ.5 .OR. MR.EQ.6) GO TO 50
        !            60:    70   N = LAT(N) + 3
        !            61:         L = L + 2
        !            62:    80 CONTINUE
        !            63:   100 RETURN
        !            64:       END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.