* * $Id: dzdhtm.F,v 1.1.1.1 1996/03/04 16:13:19 mclareni Exp $ * * $Log: dzdhtm.F,v $ * Revision 1.1.1.1 1996/03/04 16:13:19 mclareni * Dzdoc/Zebpack * * #include "dzdoc/pilot.h" SUBROUTINE DZDHTM(ISTORE,L,CFLAG) * * walk through a d/s at L and write doc in html * CFLAG 'S' one bank only * 'T' bank tree (default) * 'N' no data words * 'P' plain text (no hyperlinks) * C+SEQ,ZUNIT. #include "zebra/zebq.inc" #include "zebra/mzca.inc" #include "zebra/mzcb.inc" C++CDE,ZBCDK. From DZEBRA C++SEQ,DZDPRM C++SEQ,DZDOCC. CHARACTER*(*) CFLAG CHARACTER*16 CLTOP INTEGER L,LN,LGO,LRET,LDOWN, IFC,ILC, IHNONE, LUN PARAMETER (LUN=65) CHARACTER*8 ANCHOR CHARACTER*80 CGET CHARACTER*4 CLINK CHARACTER*5 CSUFFI CHARACTER*16 CLDOWN CHARACTER*16 DZE2US INTEGER KEYVEC(2) *--- CALL MZSDIV(ISTORE,-7) CALL UCTOH('NONE',IHNONE,4,4) IF(INDEX(CFLAG,'P').EQ. 0)THEN CSUFFI='.html' ELSE CSUFFI='.txt' ENDIF WRITE(CLTOP,'(A4,I7.7,A)')IQ(KQS+L-4),L,CSUFFI CLTOP=DZE2US(CLTOP) OPEN(LUN,FILE=CLTOP) * CALL KUOPEN(LUN,CLTOP,'UNKNOWN',IRET) IF(LQ(KQS+L+1).EQ.0)THEN CLTOP=' ' ELSE WRITE(CLTOP,'(A4,I7.7,A)') + IQ(KQS+LQ(KQS+L+1)-4),LQ(KQS+L+1),CSUFFI CLTOP=DZE2US(CLTOP) ENDIF IF(INDEX(CFLAG,'P').EQ. 0)THEN WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'
'
         ENDIF
      LRET=-L
 20   CONTINUE
      LGO=LRET
      CALL DZDWTR(ISTORE,LGO,LRET)
      IF(LRET.NE.0)THEN
*         WRITE(*,'(A,A4,I10)')'Found ',IQ(KQS+LRET-4),LRET
         KEYVEC(1)=IQ(KQS+LRET-4)
         IF(LQ(KQS+LRET+1).GT.1)THEN
            KEYVEC(2)=IQ(KQS+LQ(KQS+LRET+1)-4)
         ELSE
            KEYVEC(2)=IHNONE
         ENDIF
         I1000=100000
         LQBKD=0
         CALL RZIN(0,LQBKD,2,KEYVEC,I1000,'D')
         IF (LQBKD .EQ. 0)THEN
            NLT = 0
            NLU = 0
            WRITE(*,'(A,A4)')'No doc for bank ',KEYVEC(1)
         ELSE
            IP0=KQSP+LQBKD+1
            
            CALL DZDGGI(IQ(IP0),'CL',' ',CGET,IFC,ILC)
            WRITE(ANCHOR,'(I8.8)')LRET
            IF(INDEX(CFLAG,'P').EQ. 0)
     +      WRITE(LUN,'(A)')''
            IF(ILC.GT.0)WRITE(LUN,'(A)')
     +      'Bank IDH '//CGET(1:4)//' '//CGET(5:ILC)
            IF(INDEX(CFLAG,'P').EQ. 0)
     +      WRITE(LUN,'(A)')''
            CALL DZDGGI(IQ(IP0),'AU',' ',CGET,IFC,ILC)
            IF(ILC.GT.0)WRITE(LUN,'(A,A,A)')'Author(s) ',CGET(IFC:ILC)
            CALL DZDGGI(IQ(IP0),'VE',' ',CGET,IFC,ILC)
            IF(ILC.GT.0)WRITE(LUN,'(A,A,A)')'Version  ',CGET(IFC:ILC)
            NID=IQ(KQS+LRET-5) 
            WRITE(LUN,'(A,I6)')'NumId     ',NID         
            NL=IQ(KQS+LRET-3) 
            NS=IQ(KQS+LRET-2)  
            WRITE(LUN,'(A,I6)')'Str Links ',NS         
            NR=NL-NS  
            WRITE(LUN,'(A,I6)')'Ref Links ',NR         
            ND=IQ(KQS+LRET-1) 
            WRITE(LUN,'(A,I6)')'NData     ',ND
            NIO = JBYT(IQ(KQS+LRET),19,4)
            IOFFBS = - (NIO + NL + 8 + 1)
            CALL DZDIOC(IQ(KQS+LRET+IOFFBS),CGET,ILC)
            IF(ILC.GT.0)WRITE(LUN,'(A,A,A)')'IO-Char   ',CGET(1:ILC)
            
            WRITE(LUN,'(A)')'----------  System links ----------'
            CALL UHTOC(KEYVEC(2),4,CLINK,4)
            IF(CLINK.NE.'NONE')THEN
               IF(INDEX(CFLAG,'P').EQ. 0)THEN
                  WRITE(ANCHOR,'(I8.8)')LQ(KQS+LRET+1)
*                 is it very first bank
                  IF(LRET.EQ.L)THEN
                     NCH=LNBLNK(CLTOP)
                     WRITE(LUN,'(A,A)')'Up-Link   '//
     +               ''//
     +               CLINK//''
                  ELSE
                     WRITE(LUN,'(A,A)')'Up-Link   '//
     +               ''//
     +               CLINK//''
     
                  ENDIF
               ELSE
                  WRITE(LUN,'(A,A)')'Up-Link   '//CLINK
               ENDIF
*              handle Origin link eventually 
            ELSE           
               WRITE(LUN,'(A,A)')'Up-Link   '//CLINK
            ENDIF
            LN=LQ(KQS+LRET)
            IF(LN.NE.0)THEN
               CALL UHTOC(IQ(KQS+LN-4),4,CLINK,4)
               IF(INDEX(CFLAG,'P').EQ. 0)THEN
                  WRITE(ANCHOR,'(I8.8)')LN
                  WRITE(LUN,'(A,A)')'Next-Link '//
     +            ''//
     +            CLINK//''
               ELSE
                   WRITE(LUN,'(A,A)')'Next-Link '//CLINK
               ENDIF
            ENDIF
            IF(NS.GT.0)THEN
               WRITE(LUN,'(A)')'--------- Struct links ----------'
               DO I=1,NS
                  LDOWN=LQ(KQS+LRET-I)
                  IF(LDOWN.NE.0)THEN
                     CALL UHTOC(IQ(KQS+LDOWN-4),4,CLINK,4)
                     CALL DZDGGI(IQ(IP0),'LI',CLINK,CGET,IFC,ILC)
                     IF(INDEX(CFLAG,'P').EQ. 0)THEN
                        WRITE(ANCHOR,'(I8.8)')LDOWN
                        IF(INDEX(CFLAG,'S').NE.0)THEN
                           WRITE(CLDOWN,'(A4,I7.7,A5)')
     +                     CLINK,LDOWN,'.html'
                           CLDOWN=DZE2US(CLDOWN)
                           WRITE(LUN,'(I6,A)')I,
     +                     ' '//
     +                     CLINK//' '//CGET(1:ILC)
                        ELSE
                           WRITE(LUN,'(I6,A)')I,
     +                     ' '//
     +                     CLINK//' '//CGET(1:ILC)
                        ENDIF
                     ELSE
                        WRITE(LUN,'(I6,A)')I,CLINK//' '//CGET(1:ILC)
                     ENDIF
                  ENDIF
               ENDDO
            ENDIF       
            IF(ND.GT.0 .AND. INDEX(CFLAG,'N').EQ. 0)THEN
               CALL DZDDWD(ISTORE,LRET,' ',1,ND,LUN)
            ENDIF
            CALL MZDROP(0,LQBKD,' ')
            LQBKD=0
         ENDIF
         IF(INDEX(CFLAG,'S').EQ.0)GOTO 20
      ENDIF 
      IF(INDEX(CFLAG,'P').EQ. 0)THEN
         WRITE(LUN,'(A)')'
' WRITE(LUN,'(A)')'' WRITE(LUN,'(A)')'' ENDIF 999 CONTINUE RETURN END *******************************************************************