      program operaciones matrices
c     este es un programa que calcula
c     operaciones matriciales
      implicit none  !esta int desactiva la declaracion implicita
      real*8 A(10,10),B(10),C(10),sum
      integer n,i,nf,nc,j
C     ahora operamos matriz * vector
      

C     INGRESAMOS DATOS


      CALL leedatos(nf,nc,A,B)
C     MULTIPLICAMOS
      CALL mulmatvec(A,B,nc,nf, C)      

C     MUESTRA RESULTADOS
      CALL imprime(C,nc)
      
      end program


      subroutine leedatos(nf,nc,A,B)
      implicit none
      real*8 A(10,10),B(10)
      integer nf,nc,i,j
      
      write(*,*) 'ingrese número de filas '
      read(*,*) nf
      write(*,*) 'ingrese número de columnas '
      read(*,*) nc
      do i=1, nf
         do j=1,nc
         write(*,*) 'ingrese elemento A(',i,',',j,')'
         read(*,*) A(i,j)
         end do
      end do
      do i=1,nc
        write(*,*) 'ingrese elemento B(',i,')'
        read(*,*) B(i)         
      end do

      return
      end 
      subroutine mulmatvec(A,B,nc,nf, C)
      implicit none
      real*8 A(10,10), B(10), C(10),sum
      integer i,nc,nf,j
      do i=1,nc
       sum=0.0
         do j=1,nf
           sum= A(i,j)*B(j)+sum
         end do
        C(i)=sum
      end do 
      return
      end
      subroutine imprime(C,nc)
      implicit none
      real*8 C(10)
      integer i,nc
      do i=1,nc
        write(*,*) C(i)
      end do 
      return
      end
