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

1.1     ! root        1:       INTEGER FUNCTION SETARG(PP, N)
        !             2:       INTEGER PLAT, DSA, PP, SYMLEN, PDSA
        !             3:       LOGICAL ERR, SYSERR, ABORT
        !             4:       COMMON /CTABL/ LDSA, PDSA, DSA(5000)
        !             5:       COMMON /DETECT/ ERR, SYSERR, ABORT
        !             6:       COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
        !             7:       COMMON /PARAMS/ INUT, I1, NOCHAR, SYMLEN, I2, I3, I4
        !             8: C
        !             9: C     SETS UP LIST OF ARGUMENTS , HANGING OFF NODE AT LAT(PP)
        !            10: C     ARGES ARE KEPT IN ORDERED LINEAR LINKED LIST
        !            11: C     ORDERING CORRESPONDS TO LEFT TO RIGHT APPEARENCE IN DEFN
        !            12: C     N-SUBPRGM ENTRY IN DSA
        !            13: C     PP- CURRENT RTNE NODE IN LAT
        !            14: C     ARGUMENT NODE
        !            15: C     WD 1      ATTRIBUTES
        !            16: C     WD2       LENGTH WITH -1 FOR VARIABLEY DIMENSIONED ARRAYS
        !            17: C     WD3       HEAD OF PARENT REFS LIST
        !            18: C     WD4       HEAD OF DESCENDENTS REFS LIST
        !            19: C     WD5       PTR TO NEXT ARG
        !            20: C
        !            21: C     FIND FIRST ARGUMENT & ZERO COUNT
        !            22: C
        !            23:       J = DSA(N+2)
        !            24:       SETARG = 0
        !            25:       IPROC = 0
        !            26: C
        !            27: C     FIND FIRST ENTRY ON DSA ARGLIST;
        !            28: C     KK HEAD OF TO BE CREATED ARGLIST IN LAT
        !            29: C
        !            30:       I = DSA(J)
        !            31:       KK = PP + SYMLEN + 1
        !            32: C
        !            33: C     SETUP STORAGE FOR ARG ENTRY
        !            34: C
        !            35:    10 IF (PLAT+4.GE.LLAT) GO TO 80
        !            36: C
        !            37: C     ENTER ATTRIBUTE WORD AND ZERO REST OF ENTRY
        !            38: C
        !            39:       LAT(PLAT) = DSA(I)
        !            40:       LAT(KK) = PLAT
        !            41:       KK = PLAT + 3
        !            42:       DO 20 IA=1,3
        !            43:         L = IA + PLAT
        !            44:         LAT(L) = 0
        !            45:    20 CONTINUE
        !            46:       K = IGATT1(I,8)
        !            47:       IF (K.NE.10) GO TO 50
        !            48: C
        !            49: C     GET STRUCTURE  OF ARG
        !            50: C
        !            51:       K = IGATT1(I,7)
        !            52:       IF (K) 40, 40, 30
        !            53: C
        !            54: C     ARRAY
        !            55: C
        !            56:    30 K = DSA(I+2)
        !            57:       LAT(PLAT+1) = DSA(K)
        !            58:       GO TO 60
        !            59: C
        !            60: C     SCALAR
        !            61: C
        !            62:    40 LAT(PLAT+1) = 1
        !            63:       GO TO 60
        !            64: C     SET RELATIVE ORDER OF PROC ARGS IN ITS 2ND WORD
        !            65:    50 IPROC = IPROC + 1
        !            66:       LAT(PLAT+1) = IPROC
        !            67: C
        !            68: C     CHECK FOR MORE ARGS; ADVANCE  PLAT
        !            69: C
        !            70:    60 PLAT = PLAT + 4
        !            71:       SETARG = SETARG + 1
        !            72:       IF (DSA(J+1)) 90, 90, 70
        !            73:    70 J = DSA(J+1)
        !            74:       I = DSA(J)
        !            75:       GO TO 10
        !            76:    80 SYSERR = .TRUE.
        !            77:       CALL ERROR1(33H IN SETARG, TABLE OVERFLOW OF LAT, 33)
        !            78:    90 RETURN
        !            79:       END

unix.superglobalmegacorp.com

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