|
|
1.1 ! root 1: SUBROUTINE OUT2(ISR) ! 2: INTEGER SYMLEN, PNODE, BL, PLAT, STACK, Q(3), C(12), ! 3: * OUTLAT, OUTCOM, OUTUT ! 4: LOGICAL ERR, SYSERR, ABORT ! 5: EXTERNAL EXCH ! 6: COMMON /PARAMS/ INUT, OUTUT, NOCHAR, SYMLEN, I1, I2, II1 ! 7: COMMON /DETECT/ ERR, SYSERR, ABORT ! 8: COMMON /GRAPH/ LLAT, PLAT, LAT(6000) ! 9: COMMON /CEXPRS/ LSTACK, STACK(620) ! 10: COMMON /HEAD/ LNODE, PNODE, NODE(500) ! 11: COMMON /SCR1/ LINODE, INODE(500) ! 12: DATA C(1) /1HE/, C(2) /1HD/, C(3) /1HR/, C(4) /1HI/, C(5) /1HC/, ! 13: * C(6) /1HL/, C(7) /1HS/, C(8) /1HA/, C(9) /1HF/, IP /1HP/, IBL ! 14: * /1H-/, C(12) /1HU/, C(10) /1HB/, C(11) /1HN/ ! 15: DATA BL /1H / ! 16: C ! 17: C ROUTINE PRINTS CALLING GRAPH ! 18: C ! 19: IF (PNODE.LE.2) GO TO 110 ! 20: C ! 21: C GRAPH ! 22: C ! 23: I3 = PNODE - 1 ! 24: IF (ISR.NE.0) I3 = I3 - 1 ! 25: C ! 26: C SORT LATTICE ! 27: C ! 28: DO 10 I=1,I3 ! 29: INODE(I) = IABS(NODE(I)) ! 30: 10 CONTINUE ! 31: CALL SSORT(EXCH, LAT, LLAT, INODE, I3, 0) ! 32: DO 100 IA=1,I3 ! 33: I = INODE(IA) ! 34: L = I + SYMLEN + 6 ! 35: IF (MOD(LAT(L),8).EQ.4) GO TO 100 ! 36: CALL S5UNPK(LAT(I), STACK(1), 6) ! 37: WRITE (OUTUT,99999) (STACK(L),L=1,6) ! 38: 99999 FORMAT (///1X, 6A1//) ! 39: C ! 40: C GET ARGS IF ANY ! 41: C ! 42: IS = 1 ! 43: K = SYMLEN + I ! 44: L = LAT(K) ! 45: IF (L) 70, 70, 20 ! 46: 20 K = K + 1 ! 47: K = LAT(K) ! 48: IF (L*8.GT.LSTACK) GO TO 120 ! 49: DO 60 LL=1,L ! 50: Q(1) = IGATT2(K,8) ! 51: IF (Q(1).EQ.5 .OR. Q(1).EQ.6 .OR. Q(1).EQ.13) GO TO 30 ! 52: Q(1) = IGATT2(K,1) ! 53: Q(2) = IGATT2(K,5) ! 54: Q(3) = IGATT2(K,7) ! 55: STACK(IS) = IBL ! 56: STACK(IS+2) = IBL ! 57: IF (Q(1).GE.8) STACK(IS) = C(1) ! 58: L1 = MOD(Q(1),8) + 2 ! 59: STACK(IS+1) = C(L1) ! 60: IF (Q(2).EQ.1) STACK(IS+2) = C(7) ! 61: STACK(IS+3) = C(7) ! 62: IF (Q(3).NE.0) STACK(IS+3) = C(8) ! 63: GO TO 40 ! 64: 30 STACK(IS) = IP ! 65: STACK(IS+1) = IBL ! 66: STACK(IS+2) = IBL ! 67: STACK(IS+3) = IBL ! 68: 40 DO 50 LK=4,7 ! 69: L1 = LK + IS ! 70: STACK(L1) = BL ! 71: 50 CONTINUE ! 72: IS = IS + 8 ! 73: K = LAT(K+3) ! 74: 60 CONTINUE ! 75: IS = IS - 1 ! 76: C PRINT ARGUMENTS ! 77: K = 48 ! 78: IF (K.GT.IS) K = IS ! 79: WRITE(OUTUT,99998)(STACK(LK), LK=1,K) ! 80: 99998 FORMAT(20H ARGUMENT ATTRIBUTES ,5X,6(8A1,1X)) ! 81: IF( K.EQ.IS ) GOTO 70 ! 82: 65 LK = K + 1 ! 83: K = LK + 47 ! 84: IF(K.GT.IS) K = IS ! 85: WRITE(OUTUT,99997) (STACK(L1),L1=LK,K) ! 86: 99997 FORMAT(25X,6(8A1,1X)) ! 87: IF(K.LT.IS) GOTO 65 ! 88: C ! 89: C GET COMMON NAMES ! 90: C ! 91: 70 K = I + SYMLEN + 2 ! 92: K = OUTCOM(LAT(K),IS) ! 93: IF (SYSERR) GO TO 110 ! 94: IF (K.EQ.0) GO TO 80 ! 95: CALL OUT2A(14H COMMON BLOCKS, 14, IS, 2) ! 96: C ! 97: C FIND PARENTS ! 98: C ! 99: 80 K = I + SYMLEN + 3 ! 100: K = OUTLAT(LAT(K),IS,ISR) ! 101: IF (SYSERR) GO TO 110 ! 102: IF (K.EQ.0) GO TO 90 ! 103: CALL OUT2A(22H CALLED BY SUBPROGRAMS, 22, IS, 1) ! 104: C ! 105: C FIND DESCENDENTS ! 106: C ! 107: 90 K = I + SYMLEN + 4 ! 108: K = OUTLAT(LAT(K),IS,ISR) ! 109: IF (SYSERR) GO TO 110 ! 110: IF (K.EQ.0) GO TO 100 ! 111: CALL OUT2A(18H CALLS SUBPROGRAMS, 18, IS, 1) ! 112: 100 CONTINUE ! 113: 110 RETURN ! 114: 120 SYSERR = .TRUE. ! 115: CALL ERROR1(33H IN OUT2, TABLE OVERFLOW OF STACK, 33) ! 116: GO TO 110 ! 117: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.