[Fortran]Multiplying Matrices Using dgemm - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

[Fortran]Multiplying Matrices Using dgemm

GosikGosik Posts: 1Member
I do not know where to put this topic.
However, I would like to multiply two arrays in Fortran using DGEMM (BLAS procedure).
I have written a simple program:
[code]
program matrix
implicit none
double precision mac(m,n),mac2(n,k),mac3(m,k)
integer R,L
integer m,n,k

m=4
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,n,0.d0,mac3,m)

WRITE(*,*)'Matrix C:'
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(*,*) 'MAtrix: '
do I=1,M
write(*,*) (MATRIX(I,J),J=1,N)
end do

END
[/code]

I get this result:
[code]
Matrix C:
29.00000000000000 0.0000000000000000 0.0000000000000000
36.00000000000000 0.0000000000000000 0.0000000000000000
27.00000000000000 7.2315834086755357E-308 0.0000000000000000
34.00000000000000 1.0037966311151816E-317 0.0000000000000000
Segmentation fault
[/code]
Do any of you have experience with Fortran and Blas and can point where is mistake?


Sign In or Register to comment.