| 查看: 1323 | 回复: 6 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
使用MKL现成的函数,可是却出现了ACCESS VIOLATION
|
||
|
我打算求解大型稀疏矩阵问题,所以选用MKL里的LAPACK 随便写了一段测试一下,就出现forrtl: severe (157): Program Exception - access violation 错误就出现在MKL给的程序里,但是因为封装着,所以看不到。 以下是我的代码,SPOSV是我调用的LAPACK函数: program main REAL A1(5,5),B1(5,3) INTERFACE SUBROUTINE SPOSV(A,B) REAL A(:, ![]() REAL B(:, ![]() END SUBROUTINE SPOSV END INTERFACE DATA A1/38,3,4,6,5,3,48,6,7,7,4,6,52,1,6,6,7,1,56,10,5,7,6,10,74/ DATA B1/56,71,69,80,102,112,142,138,160,204,168,213,207,240,306/ CALL SPOSV(A1,B1) DO I=1,5 WRITE(*,*)(B1(I,J),J=1,3) END DO end program main ************************************************************************* MKL给的子程序里,用的是假定形状数组,这个需要在主程序里加上显示借口。我之前没有做。 但是现在加上了,却还是不行,问题依旧。具体问题出现在“++pfbegin; ”这一行: #ifdef CRTDLL void __cdecl _initterm ( #else /* CRTDLL */ static void __cdecl _initterm ( #endif /* CRTDLL */ _PVFV * pfbegin, _PVFV * pfend ) { /* * walk the table of function pointers from the bottom up, until * the end is encountered. Do not skip the first entry. The initial * value of pfbegin points to the first valid entry. Do not try to * execute what pfend points to. Only entries before pfend are valid. */ while ( pfbegin < pfend ) { /* * if current table entry is non-NULL, call thru it. */ if ( *pfbegin != NULL ) (**pfbegin)(); ++pfbegin; !!!!问题出现在这里 } } 这一段据说是在对全局变量进行初始化。但是并不懂得具体对应什么问题。 ****************************************************************** |
» 猜你喜欢
要不要辞职读博?
已经有6人回复
实验室接单子
已经有3人回复
不自信的我
已经有10人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有4人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
6楼2016-09-12 18:11:51
2楼2015-12-05 10:53:09
3楼2015-12-05 16:06:57
4楼2015-12-13 21:39:47













回复此楼