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:
I get this result:
Do any of you have experience with Fortran and Blas and can point where is mistake?
However, I would like to multiply two arrays in Fortran using DGEMM (BLAS procedure).
I have written a simple program:
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
I get this result:
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
Do any of you have experience with Fortran and Blas and can point where is mistake?