| 查看: 1318 | 回复: 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; !!!!问题出现在这里 } } 这一段据说是在对全局变量进行初始化。但是并不懂得具体对应什么问题。 ****************************************************************** |
» 猜你喜欢
论文终于录用啦!满足毕业条件了
已经有21人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
2楼2015-12-05 10:53:09
3楼2015-12-05 16:06:57
4楼2015-12-13 21:39:47
小红豆
主管区长 (知名作家)
- 应助: 52 (初中生)
- 贵宾: 5.431
- 金币: 59476.1
- 散金: 1532
- 红花: 62
- 沙发: 18
- 帖子: 9215
- 在线: 1902.7小时
- 虫号: 161399
- 注册: 2006-01-09
- 专业: 理论和计算化学
- 管辖: 计算模拟区
5楼2016-09-12 17:33:12
6楼2016-09-12 18:11:51
小红豆
主管区长 (知名作家)
- 应助: 52 (初中生)
- 贵宾: 5.431
- 金币: 59476.1
- 散金: 1532
- 红花: 62
- 沙发: 18
- 帖子: 9215
- 在线: 1902.7小时
- 虫号: 161399
- 注册: 2006-01-09
- 专业: 理论和计算化学
- 管辖: 计算模拟区
7楼2016-09-12 18:35:06








回复此楼