Annotation of researchv10no/cmd/pfort/SETASF.f, revision 1.1.1.1

1.1       root        1:       SUBROUTINE SETASF(PP, K)
                      2:       INTEGER PP, SYMLEN, PLAT, PDSA, SETARG, PNODE, DSA
                      3:       LOGICAL ERR, SYSERR, ABORT
                      4:       COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
                      5:       COMMON /HEAD/ LNODE, PNODE, NODE(500)
                      6:       COMMON /CTABL/ LDSA, PDSA, DSA(5000)
                      7:       COMMON /PARAMS/ INUT, I1, NOCHAR, SYMLEN, I2, I3, I4
                      8:       COMMON /DETECT/ ERR, SYSERR, ABORT
                      9: C
                     10: C     SETUP ASF NODE;  IT HAS A NODE JUST LIKE A RTNE
                     11: C     EXCEPT ITS INDEX IN NODE IS NEGATIVE
                     12: C     PP-COM ADDRESS OF PARENT SUBPGM
                     13: C     K-DSA ADDRESS OF ASF ENTRY
                     14: C
                     15:       IF (PNODE+1.GT.LNODE) GO TO 40
                     16:       IF (PLAT+SYMLEN+11.GT.LLAT) GO TO 60
                     17: C
                     18: C     CREATE NEW NODE ENTRY
                     19: C
                     20:       NODE(PNODE) = -PLAT
                     21:       PNODE = PNODE + 1
                     22: C
                     23: C     ENTER NAME AND ZERO REST OF NODE
                     24: C
                     25:       DO 10 I=1,SYMLEN
                     26:         L = K + 3 + I
                     27:         LL = PLAT + I - 1
                     28:         LAT(LL) = DSA(L)
                     29:    10 CONTINUE
                     30:       DO 20 I=1,6
                     31:         L = LL + I
                     32:         LAT(L) = 0
                     33:    20 CONTINUE
                     34: C
                     35: C     SET LAST ELEMENT TO TYPE OF PGM UNIT
                     36: C     STORE IN SAME WORD ASF TYPE
                     37: C
                     38:       I = IGATT1(K,1)
                     39:       LAT(L+1) = 4 + 8*MOD(I,8)
                     40: C
                     41: C     SETUP PARENT'S LIST TO POINT TO PP IN ASF NODE
                     42: C
                     43:       L = PLAT + SYMLEN + 3
                     44:       LAT(L) = L + 4
                     45:       LAT(L+4) = PP
                     46:       LAT(L+5) = 0
                     47:       KQ = PLAT
                     48:       PLAT = L + 6
                     49: C
                     50: C     SETUP REFERENCE IN PP'S DESCENDENTS LIST
                     51: C
                     52:       II = PP + SYMLEN + 4
                     53:       LAT(PLAT) = KQ
                     54:       LAT(PLAT+1) = LAT(II)
                     55:       LAT(II) = PLAT
                     56:       PLAT = PLAT + 2
                     57: C
                     58: C     SETUP ARGUMENTS
                     59: C
                     60:       L = KQ + SYMLEN
                     61:       LAT(L) = SETARG(KQ,K)
                     62:    30 RETURN
                     63:    40 CALL ERROR1(34H IN SETASF, TABLE OVERFLOW OF NODE, 34)
                     64:    50 SYSERR = .TRUE.
                     65:       GO TO 30
                     66:    60 CALL ERROR1(33H IN SETASF, TABLE OVERFLOW OF LAT, 33)
                     67:       GO TO 50
                     68:       END

unix.superglobalmegacorp.com

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