我有一段简单的代码,使用
我得到了一些随机的垃圾值。但是当我在编译选项中添加
DGEMM
例程进行矩阵乘法。program check
implicit none
real(8),dimension(2,2)::A,B,C
A(1,1)=4.5
A(1,2)=4.5
A(2,1)=4.5
A(2,2)=4.5
B(1,1)=2.5
B(1,2)=2.5
B(2,1)=2.5
B(2,2)=2.5
c=0.0
call DGEMM('n','n',2,2,2,1.00,A,2,B,2,0.00,C,2)
print *,C(1,1)
print *,C(1,2)
print *,C(2,1)
print *,C(2,2)
end program check
现在,当我用命令编译这段代码时
gfortran -o check check.f90 -lblas
我得到了一些随机的垃圾值。但是当我在编译选项中添加
-fdefault-real-8
后,我得到了正确的值。
但由于这不是Fortran中变量声明的好方法。因此,我使用了iso_fortran_env
内置模块,并在代码中添加了两行。
use iso_fortran_env
real(kind=real32),dimension(2,2)::A,B,C
编译时使用
gfortran -o check check.f90 -lblas
我又得到了错误的输出。 请问这段代码哪里出错了? 我的系统是32位Linux,使用的编译器是GCC。