24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2583  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

todd0226

新虫 (初入文坛)

[求助] fortran 调用子程序时,出现program exception-access violation 已有1人参与

大家好,本人fortran新人,编了一段程序,但是在运行时出现了如题所示的错误!
因为程序太长,而且错综复杂,不方便贴出,敬请见谅!
下面我进行一些相关的描述,请各位指导!
我通过debug调试出问题的出处:错误信息出现在subroutine info_nd(...)这一行
其中:step,nelm, nj,nnode 是在主程序中声明的整数常量
           剩余的变量全是数组,全部是动态变量,而且我全部在主程序中进行了allocate,各个数组的维数以及上下界和子程序中声明的完全一样。
调试时,屏幕输出了“info_nd调试开始”,没有输出“info_nd调试第一点”,而且绿色箭头指向了subroutine info_nd(...),所以我断定问题出处在这一行。
我网上搜了一下,这种问题的可能原因之一是数组越界,但是我感觉我的这种定义数组的形式应该不会造成这个问题(?)
此外,有这样一个现象:nj = 6904,nelm=6804的时候,无论debug还是release都会在subroutine info_nd(...)这一行出现如题目所说的问题;但是当我把nj,nelm调小了之后(<6000),发现debug下可以运行成功,但是release仍然出现上述问题。
所以在此请教大家,恳请予以指导!谢谢!


主程序
program main
integer,parameter:: step=10,nj=6904,nelm=6804,nnode=4
......
......   
do istp = 1,step
      ......
      write(*,*)'info_nd调试开始'
      call info_nd(step,istp,nelm,nj,nnode,maxgint,id_el_nd,id_nd_el,num_nd_el,gint_t,gint,elarea,stgp,svars_gp,sig11_nd,sig22_nd,sig12_nd,mises_nd)
      ......
end do
......
end   !主程序结束

出现问题的子程序
subroutine info_nd(step,istp,nelm,nj,nnode,maxgint,id_el_nd,id_nd_el,num_nd_el,gint_t,gint,elarea,stgp,svars_gp,sig11_nd,sig22_nd,sig12_nd,mises_nd)
implicit none

integer   step,istp,nelm,nj,nnode
integer::   id_el_nd(nelm,nnode),id_nd_el(nj,nelm),num_nd_el(nj),gint_t(nelm+1,step),gint(nelm,step),maxgint(step)
real*8::   svars_gp(nelm,20*24,step),elarea(nelm),stgp(3,24*nelm,step)
real*8::   sig_nd_temp(nnode,3),sig11_nd_temp(nj,nelm),sig22_nd_temp(nj,nelm),sig12_nd_temp(nj,nelm)
real*8::   sig11_nd(nj,step),sig22_nd(nj,step),sig12_nd(nj,step),mises_nd(nj,step),area(nj)
real*8::   NTN(nnode,nnode),invNTN(nnode,nnode)
real*8,allocatable::   sig_gp(:,,N(:,,NT(:,,invN(:,
real*8    sigp,tigp
integer   gint_el,gint_iel
integer   iel,igp,i,j,ii

write(*,*)'info_nd调试第一点'
......
end
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

todd0226

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by pippi6 at 2014-11-04 17:20:43
No idea。已经不是fortran问题了...

好的,多谢
8楼2014-11-04 21:08:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

感谢参与,应助指数 +1
在你的makefile (或编译 option)里加上 /check:bounds  /traceback
就会在runtime 时间显示在何处越界。
2楼2014-11-03 18:50:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

todd0226

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by pippi6 at 2014-11-03 18:50:05
在你的makefile (或编译 option)里加上 /check:bounds  /traceback
就会在runtime 时间显示在何处越界。

不好意思,对这个我了解的不多。
你说的在Makefile里加上 /check:bounds  /traceback,Makefile是我编写的源程序文件吗?加在哪个位置?
编译option,这是编译器的选项吗?我用的是Intel visual Fortran编译器,没有找到这一项呀?
3楼2014-11-03 21:35:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

todd0226

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by pippi6 at 2014-11-03 18:50:05
在你的makefile (或编译 option)里加上 /check:bounds  /traceback
就会在runtime 时间显示在何处越界。

我在Intel visual Fortran中找到了/check:bound /trackback,然后调试发现没有出现数组越界的问题。
在运行到subroutine info_nd(...)时,
提示信息说:其原因可能是堆被破坏,这说明NASA_mb05_p1.exe中或它               所加载的任何DLL中有Bug。原因也可能是用户在NASA_mb05_p1.exe具有焦点时按下了F12

其中,不是后一个原因,在运行时我并没有碰到键盘,关于第一个原因,能从中得到哪些信息呢?
4楼2014-11-04 10:12:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +7 AZMK 2026-03-28 11/550 2026-03-28 21:01 by xxxsssccc
[考研] 求调剂一志愿海大,0703化学学硕304分,有大创项目,四级已过 +7 幸运哩哩 2026-03-22 11/550 2026-03-28 20:27 by 唐沐儿
[考研] 材料与化工272求调剂 +9 阿斯蒂芬2004 2026-03-28 9/450 2026-03-28 15:21 by 1018329917
[考研] 291求调剂 +15 hhhhxn.. 2026-03-23 21/1050 2026-03-28 11:26 by self2008
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
[考研] 070300化学求调剂 +4 起个名咋这么难 2026-03-27 4/200 2026-03-27 21:39 by 83503孙老师
[考研] 265求调剂11408 +3 刘小鹿lu 2026-03-27 3/150 2026-03-27 20:53 by nihaoar
[考研] 272求调剂 +7 脚滑的守法公民 2026-03-27 7/350 2026-03-27 17:23 by laoshidan
[考研] 283求调剂(080500) +4 A child 2026-03-27 4/200 2026-03-27 15:34 by XPU李庆
[考研] 279 分 求调剂 +4 睡个好觉_16 2026-03-24 4/200 2026-03-27 15:05 by 醉在风里
[考研] 求调剂,一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +4 @taotao 2026-03-26 5/250 2026-03-27 08:10 by hypershenger
[考研] 333求调剂 +6 wfh030413@ 2026-03-23 6/300 2026-03-26 22:45 by 学员8dgXkO
[考研] 生物学 296 求调剂 +4 朵朵- 2026-03-26 6/300 2026-03-26 19:01 by 不吃魚的貓
[考研] 271求调剂 +6 生如夏花… 2026-03-22 6/300 2026-03-26 16:48 by 张凯十八号
[考研] 303求调剂 +6 蓝山月 2026-03-25 6/300 2026-03-25 22:47 by 418490947
[考研] 生物技术与工程 +3 1294608413 2026-03-25 4/200 2026-03-25 18:02 by 1294608413
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[考研] 调剂 +4 13853210211 2026-03-24 4/200 2026-03-24 19:44 by ms629
[考研] 材料专硕找调剂 +5 哈哈哈吼吼吼哈 2026-03-23 5/250 2026-03-24 19:07 by 了了了了。。
[考博] 26申博自荐 +3 whh869393 2026-03-24 3/150 2026-03-24 09:55 by 21018060
信息提示
请填处理意见