      subroutine mulm(b,ab,ndet,m)
c
c-------------------------------------------------------------------
c     subroutine de multiplication de la matrice par m vecteurs
c     la dimension est ndet
c     les vecteurs en donnee sont dans le fichier partitionne 21
c     l'enregistrement i correspond au vecteur i
c     les vecteurs resultats sont ecrits de la meme facon
c     dans le fichier 22
c-------------------------------------------------------------------
c
      IMPLICIT REAL*8 (A-H,O-Y),LOGICAL*1(Z)
      PARAMETER (ngru3=2048,maxda3=300)
c
c    |-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|-*-*-*-*-*-*-*-|
c    |      b        |       ab      |
c
      common /ijd/itab,jtab,dtab
      dimension ITAB(NGRU3),JTAB(NGRU3)
      real*4 DTAB(NGRU3)
      DIMENSION B(ndet),AB(ndet)
      DO 343 I=1,ndet
      ab(I)=0.D0
 343  continue
      do 344 l=1,m
 344  call ecr(ab,l,ndet,22)
      rewind 1
 341  continue
      read(1) itab,jtab,dtab
      NM=NGRU3
      IF(ITAB(NGRU3).EQ.-1) NM=JTAB(NGRU3)
      DO 330 L=1,M
      call lire(b,l,ndet,21)
      call lire(ab,l,ndet,22)
      DO 342 KK=1,NM
      I=ITAB(KK)
      J=JTAB(KK)
      ab(I)=ab(I)+DTAB(KK)*b(J)
 342  ab(J)=ab(J)+DTAB(KK)*b(I)
      call ecr(ab,l,ndet,22)
 330  continue
      if(itab(ngru3).ge.0) goto 341
      return
      end
