Fortran Pardiso稀疏矩阵格式化问题

时间:2016-06-02 16:05:18

标签: fortran sparse-matrix pardiso

我目前正在编写一些代码,涉及在Fortran中构建稀疏矩阵并解决一个简单的AX = b线性系统。为此,我应项目主管的要求使用Pardiso稀疏矩阵库。

代码分为两部分。前半部分构建矩阵和右侧,后半部分调用Pardiso来解决该系统。我知道上半部分正常工作,因为在Fortran之外导出数据并用Python解决系统会产生预期的结果。但是,我不能让Pardiso正常工作,主要是因为我误解了它给出的错误信息。该手册解释得很少,互联网论坛很少(没有双关语)填充了与Pardiso相关的问题。

我为Pardiso使用的设置如下:

function m1(){
    $('.loader').show();

   var xargs={
          type : 'POST',
          url : resourceUrls["listUrl"],
          data : "sId="+sId,
          async:false,
          dataType : "text",
          success : OnGetJsonCallback,
          failure : function(response) {
                 $(".loader").hide();
                 }

   };

  $.ajax(xargs);
}

我得到的错误是:

  

错误PARDISO(sequence_ido,参数)error_num = 4输入检查:

     

matrix_number_new 22 ido 32675不兼容

手册或互联网没有说明这意味着什么。 iparm(1)=0 iparm(2)=2 iparm(6)=0 iparm(10)=13 iparm(11)=1 iparm(13)=1 iparm(19)=0 iparm(21)=1 iparm(26)=1 iparm(52)=1 mtype = 11 iparm(3) = 1 solver=0 mtype=11 pardiso_chkmatrix没有吐出任何错误,所以我不确定发生了什么。

1 个答案:

答案 0 :(得分:0)

很难确定问题是什么,但这是一个假设。 32675的值可疑地接近可以存储在2字节变量中的最大整数值(在C:" short int"类型变量中),等于32767.显然Pardiso存储中的一些内部数组整数值为" short int" (2个字节)而不是" int"(4个字节),以节省内存。正如我所说,这只是一种可能性。