Matrix 用fortran95实现两个方阵的乘积

Matrix 用fortran95实现两个方阵的乘积,matrix,module,fortran,subroutine,fortran95,Matrix,Module,Fortran,Subroutine,Fortran95,我需要实现一个特定的算法,将2个方阵(在主程序中用随机数预生成)的乘积计算为模块内的子例程,如下所示: module MATMAT contains subroutine matmat_ijk ... end subroutine matmat_ijk end module MATMAT 这是我必须在上面的子例程中实现的算法,对两个矩阵A(mxr)和B(rxn)进行排序,以找到C(mxn): 该程序必须调用该子程序matmat_ijk,并使用主程序中生成的两个方阵(nx

我需要实现一个特定的算法,将2个方阵(在主程序中用随机数预生成)的乘积计算为模块内的子例程,如下所示:

module MATMAT

contains

subroutine matmat_ijk

     ...

end subroutine matmat_ijk

end module MATMAT

这是我必须在上面的子例程中实现的算法,对两个矩阵A(mxr)和B(rxn)进行排序,以找到C(mxn):



该程序必须调用该子程序matmat_ijk,并使用主程序中生成的两个方阵(nxn)进行计算。有什么想法吗?

是的,我知道内在MATMUL,我也必须使用它,但我需要让这个算法工作,这样我就可以使用高分辨率时钟(在Silverfrost上)比较MATMAL的执行时间!谢谢:)@Guidis-试试看。这里有一些关键字可以帮助您解决“隐式无”、“大小”、“UBOUND”、“LBOUND”、“INTENT”。
proc matmat_ijk(real A[1:m,1:r],B[1:r,1:n]; 
                ref real C[1:m,1:n])

1.int i,j,k

2.C:= 0.0

3.for i:=1 until m do

4.for j:=1 until n do

5.for k:=1 until r do

6.C[i,j]:= C[i,j]+A[i,k]*B[k,j]

7.end do

8.end do

9.end do

end proc