      subroutine mul1(b,ab,m,ndet)
c
c-------------------------------------------------------------------
c     subroutine de multiplication de la matrice par 1 vecteur
c     la dimension est ndet
c     le vecteur en donnee est b
c     le vecteur resultat est ab
c-------------------------------------------------------------------
c
      IMPLICIT REAL*8 (A-H,O-Y),LOGICAL*1(Z)
      PARAMETER (ngru3=2048,maxda3=300)
      parameter (maxsym=8)
      include 'maxorb.prm'
c
c    |-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|
c    |      b        |       ab      |
c
      common /ijd/itab,jtab,dtab
      dimension ITAB(NGRU3),JTAB(NGRU3)
      real*4 DTAB(NGRU3)
      common/rr/ idebd(maxorb*maxorb*2),idebd3(maxorb*maxsym)
     *,idebd1(maxorb)
      DIMENSION B(ndet),AB(ndet)
      call lire(b,m,ndet,21)
c     write(6,*)'entree dans mul1'
      DO 443 I=1,ndet
      ab(I)=0.D0
 443  continue
      rewind 1
441   read(1) itab,jtab,dtab
      NM=NGRU3
      IF(ITAB(NGRU3).EQ.-1) NM=JTAB(NGRU3)
c     write(6,*)'nm',nm
      DO 442 KK=1,NM
      I=ITAB(KK)
      J=JTAB(KK)
      ab(I)=ab(I)+DTAB(KK)*b(J)
      ab(J)=ab(J)+DTAB(KK)*b(I)
c     if(i.eq.22)write(99,*)b(j),dtab(kk),j
c     if(j.eq.22)write(99,*)b(i),dtab(kk),i
 442  continue
      if(itab(ngru3).ge.0) goto 441
      call ecr(ab,m,ndet,22)
      return
      end
