Howdy, Stranger!

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

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

[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.