Hej! Napisalam prosty programik do mnozenia macierzy uzywajac procedury blasa:
Kod:
program macierz
implicit none
double precision mac(m,n),mac2(n,k),mac3(m,k)
integer R,L
integer m,n
integer k
m=2
n=2
k=3
call FILLMATRIX(m,n,mac)
call FILLMATRIX(n,k,mac2)
call DGEMM("n","n",m,k,n,1.d0,mac,m,mac2,k,0.d0,mac3,m)
WRITE(*,*)'Macierz C ma postac'
DO R=1,m
write(*,*) (mac3(R,L),L=1,k)
end do
END
SUBROUTINE FILLMATRIX (M,N,MATRIX)
INTEGER M,N
DOUBLE PRECISION MATRIX(M,N)
do I=1,M
do J=1,N
MATRIX(I,J) = I+2*J
end do
end do
WRITE(*,*) 'Macierz ma postac'
do I=1,M
write(*,*) (MATRIX(I,J),J=1,N)
end do
END
Jednakze, macierz mac3 jest wyswitlana w nastepujacej postaci:
Kod:
Macierz C ma postac
29.00000000000000 0.0000000000000000 0.0000000000000000
36.00000000000000 0.0000000000000000 0.0000000000000000
Dlaczego dobrze wyswietla tylko pierwsza kolumne, a reszta jest wypelnina zerami?
Czy ktos z Was moze wskazac mi moj blad?