|
问题:使用mkl的f95接口在32位计算结果正确,64位计算结果就错误了
环境:vs2015+ivf2017,环境配置正确,均可以编译通过
plus:采用mkl的f77接口在32位和64位均计算正确。
代码:main主程序,solve为高斯解法作为对比
[Fortran] 纯文本查看 复制代码 08 | integer ( 4 ) , parameter :: m = 4 |
10 | real ( 8 ) :: a ( m , m ) , aa ( m , m ) , b ( m ) |
12 | real ( 8 ) :: cb 1 , ce 1 , cb 2 , ce 2 |
14 | data ( ( a ( i , j ) , j = 1 , m ) , i = 1 , m ) & |
15 | / 1.8 , 2.88 , 2.05 , -0.89 , & |
16 | 5.25 , -2.95 , -0.95 , -3.8 , & |
17 | 1.58 , -2.69 , -2.9 , -1.04 , & |
18 | -1.11 , -0.66 , -0.59 , 0.8 / |
19 | data b / 9.52 , 24.35 , 0.77 , -6.22 / |
25 | write ( 6 , '(1x,<m-1>(f5.2,2x),f5.2)' ) ( a ( i , j ) , j = 1 , m ) |
29 | write ( 6 , '(1x,f5.2)' ) b ( i ) |
34 | write ( 6 , * ) '==============================' |
35 | write ( 6 , * ) 'User defined solver:' |
42 | write ( 6 , '(1x,f5.2)' ) b ( i ) |
50 | write ( 6 , '(1x,a,f20.10)' ) 'Spent CPU time:' , ce 1 - cb 1 |
55 | write ( 6 , * ) '==============================' |
56 | write ( 6 , * ) 'MKL solver:' |
69 | write ( 6 , '(1x,f5.2)' ) b ( i ) |
77 | write ( 6 , '(1x,a,f20.10)' ) 'Spent CPU time:' , ce 2 - cb 2 |
[Fortran] 纯文本查看 复制代码 01 | subroutine solve ( n , a , b ) |
05 | integer ( kind = 4 ) :: i , j , k , n |
06 | real ( kind = 8 ) :: a ( n , n ) , b ( n ) |
15 | a ( j , k ) = a ( j , k ) - x * a ( i , k ) |
22 | b ( i ) = b ( i ) - b ( j ) * a ( i , j ) |
29 | b ( i ) = b ( i ) - b ( j ) * a ( i , j ) |
|
|