jason_bourne 发表于 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

代码如下:

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这行后能正常运行,但不知道是哪里的问题。

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






kyra 发表于 2024-5-16 10:38:58

可能是链接MKL出了问题。完全复制粘贴的代码,我这里是能跑的,并且得到正确结果。

jason_bourne 发表于 2024-5-16 11:27:21

kyra 发表于 2024-5-16 10:38
可能是链接MKL出了问题。完全复制粘贴的代码,我这里是能跑的,并且得到正确结果。 ...

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

jason_bourne 发表于 2024-5-22 18:29:05

jason_bourne 发表于 2024-5-16 11:27
好的,我看一下。非常感谢!

确实是链接MKL的问题,已解决。谢谢!
页: [1]
查看完整版本: 读取地址错误