[updated 30.Oct.1998]
SUBROUTINE PRVC (NBLIGM,LENV,NBCOLM,UENV,ITYSYM,TYMATR,MCMATR
& ,MCL,MCU,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
Auteur : D.Martin (Avril 1993)
Derniere modification : D.Martin le 9 Avril 1993
Produit MxV d'une matrice M stockee 'Profil' 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
LENV pointeurs profil inferieur
NBCOLM nombre de colonnes de la matrice
UENV pointeurs profil superieur
ITYSYM indicateur 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
CHARACTER*(*) TYMATR,TYVECT,TYRESU
INTEGER NBLIGM,NBCOLM,LENV(*),UENV(*)
& ,ITYSYM,MCMATR,MCL,MCU,MCVECT,MCRESU
REAL RST(*)
COMPLEX CST(*)
INTEGER INDSYM
CALL PRLVC (NBLIGM,NBCOLM,LENV,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 PRUVC (NBCOLM,NBCOLM,UENV,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 PRUVC (NBLIGM,NBLIGM,LENV,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 PRALVC (NBLIGM,NBLIGM,LENV,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 PRUVC (NBLIGM,NBLIGM,LENV,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 PRALVC (NBLIGM,NBLIGM,LENV,TYMATR,MCL
& ,TYVECT,MCVECT,TYRESU,MCRESU,RST,CST)
CALL TMDANT (NBLIGM,TYVECT,MCVECT,RST,CST
& ,TYVECT,MCVECT,RST,CST)
ENDIF
END !PrVc
prvc est appelé dans (2 procédures)