blas数学库以i32lp64模式(即整数* 4整数)或ilp64模式(整数* 8或8字节整数)分布。
问题是如何在短Fortran例程中区分这两种BLAS模式(i32lp64 vs ilp64),并且不会导致段错误。
答案 0 :(得分:0)
那么,
当您将此程序与ilp64 blas库链接时,我们会遇到程序崩溃。在i32lp64的情况下,不会发生崩溃。
这是ilp64和i32lp64 blas之间的区别;不是很优雅,但可行。
program test
integer*8, parameter :: inc = +1_8 + 2_8**33_8
real*8 :: a(3),d
integer :: ii
a(1)=1.0d0; a(2)=1.0d0;a(3)=1.0d0
d=ddot(3,a,inc,a,inc)
print *,"inc=",inc
print *,"d=",d
end program