Fortran Coder

查看: 139|回复: 4

[数学库] Fortran代码调用pardiso函数的问题

[复制链接]

7

帖子

3

主题

0

精华

入门

啥也不会的新手

F 币
41 元
贡献
15 点
发表于 2019-8-6 00:37:43 | 显示全部楼层 |阅读模式
自己按照MKL手册写了一个调用pardiso函数的简单代码,for格式的,不知道为什么,总是出现访问冲突,可参数都是按照要求给的,麻烦大家帮忙看一下,我有点懵了,谢谢!!!
[Fortran] 纯文本查看 复制代码
      PROGRAM pardisotest

      integer*8, dimension(64) :: pt
      integer :: maxfct=1
      integer :: mnum  =1
      integer :: mtype  = -2 
      integer :: phase      
      integer :: n=8
      
      REAL,dimension(18) :: a
      integer,dimension(9):: ia
      integer,dimension(18) :: ja    
           
      integer, dimension(8) :: perm       
      integer :: nrhs  =1
      integer, dimension(64) :: iparm
      integer :: msglvl = 1 
      
       REAL, dimension(8) :: b
       REAL, dimension(8) :: x      
      
      integer :: error  = 0 
      
       ia = (/ 1, 5, 8, 10, 12, 15, 17, 18, 19 /)

       ja = (/ 1,    3,       6, 7,    
     &            2, 3,    5,          
     &               3,             8, 
     &                  4,       7,    
     &                     5, 6, 7,    
     &                        6,    8, 
     &                           7,    
     &                              8 /)

      a = (/ 7.d0,        1.d0,             2.d0, 7.d0,        
     &             -4.d0, 8.d0,       2.d0,                    
     &                    1.d0,                         5.d0,  
     &                          7.d0,             9.d0,        
     &                                5.d0, 1.d0, 5.d0,        
     &                                     -1.d0,       5.d0,  
     &                                            11.d0,        
     &                                                  5.d0 /)


      b=(/17.d0, 6.d0, 6.d0, 16.d0 ,11.d0, 4.d0, 11.d0, 5.d0/)
      
      DO i = 1, 64
          pt(i)=0
       iparm(i) = 0
      END DO

      DO i = 1, 8
       x(i) = 0
      END DO

      phase = 13 
      
      CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a, ia, ja, 
     &         perm, nrhs, iparm, msglvl, b, x, error)
      
       WRITE(*,*) 'The solution of the system is '
      DO i = 1, n
      WRITE(*,*) ' x(',i,') = ', x(i)
      END DO
      
      read*
      
      END PROGRAM pardisotest




回复

使用道具 举报

382

帖子

1

主题

0

精华

宗师

F 币
2014 元
贡献
1312 点
发表于 2019-8-6 10:18:49 | 显示全部楼层
include 'mkl_pardiso.f90'

7

帖子

3

主题

0

精华

入门

啥也不会的新手

F 币
41 元
贡献
15 点
 楼主| 发表于 2019-8-6 21:17:51 | 显示全部楼层
li913 发表于 2019-8-6 10:18
include 'mkl_pardiso.f90'

谢谢老师,请问这个include语句到底起什么作用,我添加了这个语句后,出现了很多错误啊,请教一下怎么解决
QQ图片20190806211541.png

382

帖子

1

主题

0

精华

宗师

F 币
2014 元
贡献
1312 点
发表于 2019-8-7 10:04:49 | 显示全部楼层
那就换 use lapack95
QQ截图20190807100346.png

2

帖子

0

主题

0

精华

新人

F 币
26 元
贡献
8 点
发表于 2019-8-7 21:08:38 | 显示全部楼层
https://blog.csdn.net/chd_lkl/article/details/83011186#comments
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-10-17 03:21

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表