[updated 30.Oct.1998]

Librairie multmat > Fichier bmvc.f

Qui appelle bmvc ?

line
      SUBROUTINE BMVC (NBLIGM,NULAPL,IPLAGL,NBCOLM,NULAPU,IPLAGU
     &                ,ITYSYM,TYMATR,MCMATR,MCL,MCU,TYVECT,MCVECT
     &                ,TYRESU,MCRESU,RST,CST)
line
  Auteur : D.Martin (Avril 1993)
  Derniere modification : D.Martin le 9 Avril 1993
 
    Produit MxV d'une matrice M stockee 'BiMorse' par un vecteur
 
    ATTENTION : Le vecteur resultat n'est pas initialise a zero dans ce s.p.
 
 ** Arguments d'entree ***
  NBLIGM nombre de lignes de la matrice
  NULAPL tableau des numeros de derniere plage de chaque ligne
  IPLAGE numeros de 1ere colonne de chaque plage et longueurs cumulees
  NBCOLM nombre de colonnes de la matrice
  NULAPU tableau des numeros de derniere plage de chaque colonne
  IPLAGU numeros de 1ere ligne de chaque plage et longueurs cumulees 
  ITYSYM indicareur de symetrie de la matrice 
  TYMATR type (reel ou complexe) de la matrice  
  MCMATR adresse de la diagonale de la matrice dans le super-tableau ad hoc
  MCL    adresse de la partie triangulaire inferieure de la matrice
  MCU    adresse de la partie triangulaire superieure de la matrice
  TYVECT type (reel ou complexe) du vecteur operande 
  MCVECT adresse du vecteur operande
  TYRESU type (reel ou complexe) du vecteur resultat
  MCRESU adresse du vecteur resultat  
  RST,CST super-tableau considere reel ou complexe
line
      CHARACTER*(*) TYMATR,TYVECT,TYRESU
      INTEGER      NBLIGM,NBCOLM,NULAPL(*),IPLAGL(*),NULAPU(*),IPLAGU(*)
     &            ,ITYSYM,MCMATR,MCL,MCU,MCVECT,MCRESU
      REAL         RST(*)
      COMPLEX      CST(*)
 
      INTEGER      INDSYM
line
      CALL BMLVC  (NBLIGM,NULAPL,IPLAGL,TYMATR,MCL
     &            ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
 
      IF (ITYSYM.EQ.INDSYM (' ')) THEN
         CALL DVC    (MIN(NBLIGM,NBCOLM),TYMATR,MCMATR
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
         CALL BMUVC  (NBCOLM,NULAPU,IPLAGU,TYMATR,MCU
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
 
      ELSEIF (ITYSYM.EQ.INDSYM ('SYMETRIQUE')) THEN
         CALL DVC    (NBLIGM,TYMATR,MCMATR
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
         CALL BMUVC  (NBLIGM,NULAPL,IPLAGL,TYMATR,MCL
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
 
      ELSEIF (ITYSYM.EQ.INDSYM ('AUTOADJOINTE')) THEN
         CALL DVC    (NBLIGM,TYMATR,MCMATR
     &              ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
         CALL BMALVC (NBLIGM,NULAPL,IPLAGL,TYMATR,MCL
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
 
      ELSEIF (ITYSYM.EQ.INDSYM ('ANTISYMETRIQUE')) THEN
         CALL TMDANT (NBLIGM,TYVECT,MCVECT,RST,CST
     &               ,TYVECT,MCVECT,RST,CST)
         CALL BMUVC  (NBLIGM,NULAPL,IPLAGL,TYMATR,MCL
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
         CALL TMDANT (NBLIGM,TYVECT,MCVECT,RST,CST 
     &               ,TYVECT,MCVECT,RST,CST)
 
      ELSEIF (ITYSYM.EQ.INDSYM ('ANTIADJOINTE')) THEN
         CALL TMDANT (NBLIGM,TYVECT,MCVECT,RST,CST
     &               ,TYVECT,MCVECT,RST,CST)
         CALL BMALVC (NBLIGM,NULAPL,IPLAGL,TYMATR,MCL
     &               ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
         CALL TMDANT (NBLIGM,TYVECT,MCVECT,RST,CST
     &               ,TYVECT,MCVECT,RST,CST)
      ENDIF
                                                                    END !BmVc
line
top

bmvc est appelé dans (3 procédures)

couvec.f (couplag) matmpc.f (multmat) matmpl.f (multmat)

top