V10/cmd/pfort/OUTLAT.f

      INTEGER FUNCTION OUTLAT(IH, L, ISR)
      INTEGER STACK, PLAT
      LOGICAL ERR, SYSERR, ABORT
      COMMON /DETECT/ ERR, SYSERR, ABORT
      COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
      COMMON /CEXPRS/ LSTACK, STACK(620)
      INTEGER SYMLEN
      COMMON /PARAMS/ I1, I2, I3, SYMLEN, I4, I5, I6
C
C     IH POINTS TO A PARENTS OR DESCS LIST IN LAT; L IS NUM
C     OF ELEMENTS FOUND ON LIST; ISR IS ENTRY IN LAT OF
C     SUPERROOT
C
C
      OUTLAT = 0
      IF (IH) 50, 50, 10
   10 K = IH
      L = 1
   20 M = LAT(K)
C     SKIP OVER CALLS TO ASFS AND OVER SUPEROOT
      IF(MOD(IGATT2(M+SYMLEN+6,1),8).EQ.4 .OR. M.EQ.ISR) GOTO 30
      IF(L+1.GT.LSTACK) GOTO 60
      STACK(L) = M
      L = L + 1
   30 K = LAT(K+1)
      IF (K) 40, 40, 20
   40 L = L - 1
      IF (L.GT.0) OUTLAT = 1
   50 RETURN
   60 CALL ERROR1(35H IN OUTLAT, TABLE OVERFLOW OF STACK, 35)
      SYSERR = .TRUE.
      GO TO 50
      END