      SUBROUTINE VECRED(A,NUMB, IR)
      IMPLICIT REAL (A-H,O-Z)                               
      INCLUDE 'SIZES'
      DIMENSION  A(*)
C********************************************************************** 
C  VECRED READS A LOWER-HALF TRIANGLE OF A SQUARE MATRIX, THE          
C         LOWER-HALF TRIANGLE BEING STORED IN PACKED FORM IN THE        
C         ARRAY "A"                                                     
C                                                                       
C VARIABLES:
C      A      = ARRAY TO BE READ
C      NUMB   = SIZE OF ARRAY TO BE READ
C      IR     = CHANNEL NUMBER FOR INPUT
C*********************************************************************  
      CHARACTER*2 DUMC
      CHARACTER*80 LINE
      LOGICAL ERROR
      NUMB=ABS(NUMB)
      LIMIT=(NUMB*(NUMB+1))/2                                           
      KK=8                                                              
      NA=1                                                              
   20 LL=0                                                              
      M=MIN0((NUMB+1-NA),6)                                             
      MA=2*M+1                                                          
      M=NA+M-1                                                          
 22   READ( IR,'(A)') LINE
      IF ( INDEX( LINE, '----') .EQ. 0) GOTO 22
      DO 40 I=NA,NUMB                                                   
         LL=LL+1                                                        
         K=(I*(I-1))/2                                                  
         L=MIN0((K+M),(K+I))                                            
         K=K+NA                                                         
         IF ((KK+LL).LE.50) GO TO 30                                    
 24      READ( IR,'(A)') LINE
         IF ( INDEX( LINE, '----') .EQ. 0) GOTO 24
         KK=4                                                           
         LL=0                                                           
   30    CONTINUE
C??         READ( IR,'(A9,10F11.6)')DUMY,(A(N),N=K,L)
         READ( IR, '(A)') LINE
         CALL LCLEAN( LINE, LINE, .TRUE.)
         CALL POPARG( LINE, LINE)
         CALL POPARG( LINE, LINE)
         DO 35 N=K,L
            A(N) = READA( LINE, 1, ERROR)
            IF ( ERROR) A(N)=0.0D0
            CALL POPARG( LINE, LINE)
   35    CONTINUE
   40 CONTINUE                                                          
      IF (L.GE.LIMIT) GO TO 50                                          
      KK=KK+LL+4                                                        
      NA=M+1                                                            
      IF ((KK+NUMB+1-NA).LE.50) GO TO 20                                
      KK=4                                                              
      READ( IR,'(A)')DUMC
      GO TO 20                                                          
   50 CONTINUE
C                                                                       
C#      CALL VECPRT(A,NUMB)
C                                                                       
      RETURN
      END                                                               
