C PRDMF     SOURCE    PV        20/09/26    21:19:22     10724          
      SUBROUTINE PRDMF(XVAL,MATRIK,M1)
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C     **********************************
C     * Routine de multiplication      *
C     * d une matrice et d un flottant *
C     * XVAL : entree                  *
C     * MATRIK : Entree                *
C     * M1 : sortie                    *
C     **********************************

-INC SMMATRIK
      POINTEUR M1.MATRIK

      REAL*8 XVAL
      SEGACT MATRIK
      NMAT = MATRIK.IRIGEL(/2)
      SEGDES MATRIK
      IF (NMAT .EQ. 0)THEN
C     On crée une MATRIK vide
         NRIGE=7
         NMATRI=0
         NKID =9
         NKMT =7
         SEGINI M1
         SEGDES M1
         RETURN
      ENDIF
      CALL MCOPY(MATRIK,M1)
      SEGACT M1
      DO IMAT = 1, NMAT, 1
C     On teste si la matrice est morse ou pas
         IF (M1.IRIGEL(7,IMAT).EQ.6) THEN
            IZA=M1.IRIGEL(6,IMAT)
            SEGACT IZA*MOD
            NBVA=A(/1)
            DO I=1,NBVA
               A(I)=XVAL*A(I)
            END DO
            SEGDES IZA
         END IF
C
C     Les matrices elementaires
C
         IMATRI=M1.IRIGEL(4,IMAT)
         SEGACT IMATRI
         NBSOUS=LIZAFM(/1)
         NBME=LIZAFM(/2)
         DO I=1,NBSOUS
            DO J=1,NBME
               IZAFM=LIZAFM(I,J)
               IF (IZAFM.NE.0) THEN
                  SEGACT IZAFM*MOD
                  NBEL=AM(/1)
                  NP=AM(/2)
                  MP=AM(/3)
C     On multiplie chaque terme des matrices elementaires.
                  DO K=1,NBEL
                     DO L=1,NP
                        DO M=1,MP
                           AM(K,L,M)=XVAL*AM(K,L,M)
                        END DO
                     END DO
                  END DO
                  SEGDES IZAFM
               END IF
            END DO
         END DO
         SEGDES IMATRI
      ENDDO
      SEGDES M1
C
      RETURN
      END





 
 
 
