segmentation-fault - 分段错误 _invalid 内存引用
问题描述
我对 fortran 非常陌生,所以您的帮助对我非常有用!我在执行代码时遇到了这个问题。我在其他问题中看到了同样的问题,但这对我没有用。这是我收到的问题:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7fedb8f212ed in ???
#1 0x7fedb8f20503 in ???
#2 0x7fedb8b53f1f in ???
#3 0x7fedb956e69f in ???
#4 0x55d432e60d0f in ???
#5 0x55d432e61488 in ???
#6 0x55d432e61a72 in ???
#7 0x55d432e60ade in ???
#8 0x7fedb8b36b96 in ???
#9 0x55d432e60b19 in ???
#10 0xffffffffffffffff in ???
Violación de segmento (`core' generado)
问题与功能 agama_potforcederiv(c_object,xk,force,deriv) 有关,但我不知道为什么。xk 是一个 3 分量,而 force 和 deriv 是我必须接收的输出。这是需要我的主体代码执行的子例程的定义。我知道问题存在,因为我之前收到了文本输出。我分享了一些代码以更好地显示问题。如果我必须展示更多,请告诉我。非常感谢!
SUBROUTINE USRFUN(XA,N,NP,FVEC,FJAC)
INTEGER N,NP
REAL*8 XA(N),FVEC(NP),FJAC(NP,NP),XK(3),TKK
c REAL*8 PXE,PYE,PZE,PXXE,PYYE,PZZE,PXYE,PXZE,PYZE
double precision force(3),deriv(6), pot1, agama_potforcederiv
INCLUDE 'inc/patternspeed.f'
INCLUDE 'inc/cpotential.f'
write(*,*)'¿Que ocurre?'
XK(1)=XA(1)
XK(2)=XA(2)
XK(3)=0.D0
write(*,*)'¿Que ocurre?'
pot1 = agama_potforcederiv(c_object, xk, force, deriv)
print*, 'Dfy/Dz', deriv(2)
write(*,*)'si este mensaje sale soy feliz'
c TKK=100.d0
c CALL FISOBDEREF (TKK,XK(1),XK(2),XK(3),PXE,PYE,PZE,PXXE,PYYE,PZZE,
c & PXYE,PXZE,PYZE)
write(*,*)force(1),force(2)
FVEC(1)=force(1)-OMEGS2*XA(1)
FVEC(2)=force(2)-OMEGS2*XA(2)
c write(*,*)fvec(1),fvec(2)
FJAC(1,1)=deriv(1)-OMEGS2
FJAC(1,2)=deriv(4)
FJAC(2,1)=deriv(4)
FJAC(2,2)=deriv(2)-OMEGS2
RETURN
END
``
解决方案
推荐阅读
- ms-access - 这些 MS Access 图标中的箭头是什么意思?
- android - 由于 startActivityForResult() 已被贬值。如何使用 kotlin 从 android 中的图库中获取图像?
- sql-server - SQL Server 循环 - 将 SELECT * FROM 的输出用于新查询,直到没有更多输出
- c - 关于移动窗口 Newton-Raphson 方法的定点实现的问题
- python - Python中的&符号到LaTeX
- git - 如何在大型仓库上运行“git clone mirror”而不失败?
- javascript - 如何在 Material UI 中更改复选框图像样式。反应.js
- html - 使用 React 构建自定义循环进度条
- java - 如何使用 for 循环在 Android Studio 中播放 20 毫秒的音频文件?
- javascript - 从 json 的数据中返回一个新数组