Fortran Coder

标题: 矩阵乘法 [打印本页]

作者: xxdw    时间: 2021-11-9 17:01
标题: 矩阵乘法
[Fortran] 纯文本查看 复制代码
 DO iDegree = 0,Degree
            !RL06VI(:,iDegree+1) = RL06VI(:,iDegree+1)&
            !+((R+Zk)/a45)**(iDegree+2)*(Pressure0-Pressure1)/Gtheta
            RL06VI(:,iDegree+1) = RL06VI(:,iDegree+1) + ((R+Zk)/a45)**(iDegree+2)*(Pressure0-Pressure1)/Gtheta
        END DO



最后的RL06这里,除了a45是一个数字,其他的字幕都是代表一个(259200,1)的矩阵,这样的话实际是会报错的。

D:\01 AOD\AODFortran\xdw_CalAOD\xdw_CalAOD\xdw_TESTRL06VI.f90(197): error #6366: The shapes of the array expressions do not conform.
请教一下哪里的矩阵相乘出问题了。



作者: li913    时间: 2021-11-9 18:02
等号左边实际上是一维数组,如果右边是 (259200,1),那就是二维数组。
作者: xxdw    时间: 2021-11-9 18:06
li913 发表于 2021-11-9 18:02
等号左边实际上是一维数组,如果右边是 (259200,1),那就是二维数组。

好的谢谢
作者: xxdw    时间: 2021-11-9 19:58
xxdw 发表于 2021-11-9 18:06
好的谢谢

把后面那一坨再写一个变量加起来就行了。
作者: xxdw    时间: 2021-11-9 20:02
xxdw 发表于 2021-11-9 19:58
把后面那一坨再写一个变量加起来就行了。

[Fortran] 纯文本查看 复制代码
        DO iDegree = 0,Degree
            RL06VI_tmp =    ((R+Zk)/a45)**(iDegree+2)*(Pressure0-Pressure1)/Gtheta
            RL06VI(:,iDegree+1) = RL06VI(:,iDegree+1) + RL06VI_tmp(:,1)
        END DO



这样就好了。





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2