马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P>下面是一个算矩阵相乘的模块,是我在《Fortran 90 for Scientists and Engineers>中看到的,但我运行之后发现有问题,请哪位高手指点一下,告知那里有误.谢谢!<br>module matmult</P>
<P>type matrix<br> real::elt<br>end type matrix</P>
<P>interface operator(*)<br> module procedure MatTimesMat , ScalarTimesMat<br>end interface</P>
<P>contains <br>FUNCTION MatTimesMat( A, B )<br>TYPE (MATRIX), DIMENSION(:,:),intent(in) :: A, B<br>TYPE (MATRIX), DIMENSION( SIZE(A,1), SIZE(B,2) ) :: MatTimesMat<br><br>INTEGER I, J, EM <br> <br>EM = SIZE(A,2) ! columns of A must equal rows of B<br>DO I = 1, SIZE(A,1) ! rows of A<br> DO J = 1, SIZE(B,2) ! columns of B<br> MatTimesMat(I,J) % Elt = SUM( A(I,1:EM) % Elt * B(1:EM,J) % Elt ) ! scalar product<br>end do<br>END DO<br>END FUNCTION <br>end module<br></P>
[此贴子已经被aspen于2006-3-31 22:26:02编辑过]
|