Arrays Fortran错误:数组表达式的形状不一致

Arrays Fortran错误:数组表达式的形状不一致,arrays,size,fortran,Arrays,Size,Fortran,我在程序中遇到了一个错误。为了显示错误,我添加了这个小程序和相关的错误。我将非常感谢你的帮助 PROGRAM TRY IMPLICIT NONE REAL(KIND=8) :: A(6,6),B(6,6) INTEGER :: I, J REAL(KIND=8) :: RHO, H REAL(KIND=8) :: C(5,2),D(2,5),E(5,5) ! RHO=780 H=0.5D0 DO I=

我在程序中遇到了一个错误。为了显示错误,我添加了这个小程序和相关的错误。我将非常感谢你的帮助

PROGRAM TRY
      IMPLICIT NONE
      REAL(KIND=8) :: A(6,6),B(6,6)
      INTEGER :: I, J
      REAL(KIND=8) :: RHO, H
      REAL(KIND=8) :: C(5,2),D(2,5),E(5,5)
!
      RHO=780
      H=0.5D0
      DO I=1,6
         DO J=1,6
             A(I,J)=1
         ENDDO
      ENDDO 

      B=RHO*H**2.0D0*A
      DO I=1,5
         DO J=1,2
             C(I,J)=I+J
         ENDDO    
      ENDDO

      OPEN(1,FILE='OUTPUT.DAT')
      DO I=1,6
          WRITE(1,20) (B(I,J), J=1,6)
      ENDDO
      DO I=1,5
         DO J=1,2
              D(J,I)=C(I,J)
         ENDDO
      ENDDO
      E=C*D
      DO I=1,5
          WRITE(1,20) (E(I,J), J=1,5)
      ENDDO
      CLOSE(1)

20    FORMAT (999(2x,EN14.4))     

      END PROGRAM TRY
我收到以下错误消息:

fortran_worksheet.f(32): error #6366: The shapes of the array expressions do not conform.
      E=C*D
---------^
fortran_worksheet.f(32): error #6366: The shapes of the array expressions do not conform.   [E]
      E=C*D
------^
compilation aborted for fortran_worksheet.f (code 1)

您正在尝试以元素方式将5 x 2矩阵与2 x 5矩阵相乘。这是注定要失败的

对于矩阵乘法,您应该使用例如例程。有关使用英特尔MKL的详细信息,请参阅

或者,使用内部matmul函数。当数组只有2 x 5左右时,可以忽略任何关于它相对于blas例程的性能的质疑。