Fortran Coder

查看: 570|回复: 3
打印 上一主题 下一主题

[数学库] 读取地址错误

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
4 点
跳转到指定楼层
楼主
发表于 2024-5-15 23:13:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 jason_bourne 于 2024-5-15 23:12 编辑

在debug中出现读取地址错,报错信息为:

Exception thrown at 0x00007FF6A3F2543B in Console1.exe: 0xC0000005: Access violation reading location 0x00007FF6A4586000

代码如下

[Fortran] 纯文本查看 复制代码
program Console1
      
      USE iso_Fortran_env, ONLY: wp => real64
      implicit none
      
      external dgesv, dgetrf
      integer, parameter :: nn=2, lda=2, nrhs=1, ldb=2
      REAL(wp), dimension(lda,nn) :: A 
      REAL(wp), dimension(ldb,nrhs) :: B
      integer :: info, i, j
      integer, dimension(nn) :: ipiv

      A(1,1)=1
      A(1,2)=2
      A(2,1)=3
      A(2,2)=4
      B(1,1)=5
      B(2,1)=6
      ipiv = 0
      info = 0
      
      write(*,*), 'Hello World'
      print *, 'ipiv =', ipiv
      print *, 'INFO =', info
      print *, ((A(i,j),i=1,lda),j=1,nn)
      print *, ((B(i,j),i=1,ldb),j=1,nrhs)

      call dgesv(nn,nrhs,A,lda,ipiv,B,ldb,info)
      
      print *, "END OF PROGRAM..."
 end program Console1


问题应该是在使用dgesv函数时出现,删掉call dgesv这行后能正常运行,但不知道是哪里的问题。

希望大佬能不吝赐教,非常感谢!






分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

3

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
4 点
地板
 楼主| 发表于 2024-5-22 18:29:05 | 只看该作者
jason_bourne 发表于 2024-5-16 11:27
好的,我看一下。非常感谢!

确实是链接MKL的问题,已解决。谢谢!

3

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
4 点
板凳
 楼主| 发表于 2024-5-16 11:27:21 | 只看该作者
kyra 发表于 2024-5-16 10:38
可能是链接MKL出了问题。完全复制粘贴的代码,我这里是能跑的,并且得到正确结果。 ...

好的,我看一下。非常感谢!

259

帖子

0

主题

0

精华

版主

World Analyser

F 币
717 元
贡献
510 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
沙发
发表于 2024-5-16 10:38:58 | 只看该作者
可能是链接MKL出了问题。完全复制粘贴的代码,我这里是能跑的,并且得到正确结果。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-1 09:29

Powered by Tencent X3.4

© 2013-2024 Tencent

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