## 01/22/2000 ##########################################################
#                                                                      #
#  Flowchart and Glossary of Subprograms                               #
#                                                                      #
#  Contents:                                                           #
#                                                                      #
#  1. Flowchart (calling tree) for HLZPACK                             #
#  2. Glossary of Subprograms                                          #
#  3. Interface for System Dependencies                                #
#  4. Identification of Arguments                                      #
#  5. BLAS Kernels                                                     #
#  6. Intrinsic Functions                                              #
#                                                                      #
########################################################################


1. Flowchart (call hierarchy) for HLZPACK
=========================================

   HLZDRD
       HLPSET
           DSCAL
           HLHEAD
               SIBTST
           HLRAND
               DZASUM
               DZNRM2
               SIRAND
               ZDSCAL
       HLREND
           HLERRM
               SIBTST
           HLORTH
               ZGEMM
           HLPRT2
           HLTAIL
           HLWARN
               SIBTST
           SIBTST
       HLRITZ
           HLEIGT
               HLPRT1
                   SIBTST
               HLRCHK
                   RESNRM
               IDENTY
               IMTQL
           SIBTST
           ZGEMV
       HLSTEP
           DCOPY
           HLEIGT (see above)
           HLLORT
               MTXNRM
               QBFCTR
                   MGRAMS
                       ZAXPY
                       ZDOTC
                       ZSCAL
                   MTXNRM
                   UDBETA
                       ZTRMM
                   ZSCAL
               QTBR
                   ZDOTC
               RQALPH
                   ZAXPY
               UDALPH
                   ZSYMM
           HLPORT
               QTBR (see above)
               RQALPH (see above)
           IALPHT
           IBETAT
           IDAMAX
           MTXNRM
           QBFCTR (see above)
           QTBR (see above)
           RQALPH (see above)
           RQBETA
               ZAXPY
           SIBTST
           UPDETA
           ZCOPY


2. Glossary of Subprograms
==========================
   
   The subprograms contained in HLZPACK are the following:

   HLEIGT, solves the reduced eigenproblem                          
   HLERRM, prints error messages                                    
   HLHEAD, prints Hermitian-Lanczos header                          
   HLLORT, performs a partial reorthogonalization                   
   HLORTH, computes and prints the basis orthogonality level        
   HLPORT, performs a partial reorthogonalization                   
   HLPRT1, prints the current eigenvalue approximations             
   HLPRT2, prints the converged eigenvalues of (H)*(x)-eig*(x)=0    
   HLPSET, initializes the Hermitian-Lanczos algorithm              
   HLRAND, generates starting random vectors                        
   HLRCHK, checks the convergence of solutions                      
   HLREND, finishes the Hermitian-Lanczos run                       
   HLRITZ, computes the eigenvectors of (H)*(x)-eig*(x)=0           
   HLSTEP, performs a step of the Hermitian-Lanczos algorithm       
   HLTAIL, prints Hermitian-Lanczos statistics                      
   HLWARN, prints warning messages                                  
   IALPHT, inserts (ALPHA) into (TB)                                
   IBETAT, inserts (BETA) into (TB)                                 
   IDENTY, initializes (A) as an identity matrix                    
   IMTQL,  finds the eigensolutions of the tridiagonal matrix       
   MGRAMS, performs a factorization of (R) into (Q)*(BETA)          
   MTXNRM, computes the extreme singular values of (A)              
   QBFCTR, monitors the factorization (R)=(Q)*(BETA), (Q')*(Q)=(I)  
   QTBR,   computes (ALPHA)=(Q')*(R)                                
   RESNRM, computes the residual norms ||(H)*(x)-eig*(x)||          
   RQALPH, performs (R)=(R)-(Q)*(ALPHA)                             
   RQBETA, performs (R)=(R)-(Q)*(BETA')                             
   SIBTST, is an interface for a a bit test function                
   SIRAND, is an interface for a random number generator            
   UDALPH, updates (ALPHA) as (ALPHA)=(ALPHA)+(DELTA)*(BETA)        
   UDBETA, updates (BETA) as (BETA)=(DELTA)*(BETA)                  
   UPDETA, updates bounds for partial reorthogonalization strategy


3. Interface for System Dependencies
====================================

   SIRAND:
     . interface for a random number generator
     . called by HLRAND 


4. Identification of Arguments 
==============================

   All arguments of the subprograms are identified by a set of three
   characters, such that:           
                                                                        
   the 1st character identifies the variable,                        
       a - the variable is an array                                  
       s - the variable is a scalar                                  
   the 2nd character identifies the variable type,                   
       c - the variable is complex                                   
       i - the variable is integer                                   
       l - the variable is logical                                   
       r - the variable is real                                      
   the 3rd character identifies the variable status,                 
       b - the variable is used for input and output                 
       i - the variable is used for input                            
       o - the variable is used for output                           
       w - the variable is used as workspace                         
                                                                        
   Example: EPS (sri) means that EPS is a scalar, real and used as input
                                                                        

5. BLAS Kernels
===============

   The following BLAS kernels are called:

   __asum : called by hlrand 
   __nrm2 : called by hlrand
   _axpy  : called by mgrams, rqalph, rqbeta
   _copy  : called by hlstep
   _dotc  : called by mgrams, qtbr
   _dscal : called by hlrand
   _gemm  : called by hlorth
   _gemv  : called by hlritz
   _geru  : called by mgrams
   _scal  : called by hlpset, mgrams, qbfctr
   _symm  : called by udalph
   _trmm  : called by udbeta
   i_amax : called by hlpset

end of flowchart.txt ###################################################
