Fortran Coder

标题: lapack矩阵求逆子程序 [打印本页]

作者: lili    时间: 2023-5-5 15:59
标题: lapack矩阵求逆子程序
我想对WIJGUU这个矩阵求逆,前面我已经定义了COMPLEX*16    WIJGUU(NK/2,NK/2),并且open了文件,据我了解,前面这个子程序是LU分解,后面这个子程序是求逆,两个子程序都是联合起来使用的,我在运行中时,运算老是直接到100处,从而导致我后面算的数据write不到我open的文件中(100是我do循环的终点,我后续的运算必须在循环内,不能把100移到write上面),这两句是我根据其他的程序仿写的,不知道为什么它能把数据写到文件中我这个写不到文件中?这个IF(INFO1.NE.0)和IF(INFO2.NE.0)中的INFO1和INFO2是什么意思呢?

Fortran2.png (5.98 KB, 下载次数: 221)

Fortran2.png

FORTRAN.png (5.29 KB, 下载次数: 219)

FORTRAN.png

作者: Transpose    时间: 2023-5-5 19:27
要么参数没设置对,要么矩阵不可逆
info是拿来标志是否运算成功的
作者: lili    时间: 2023-5-5 19:45
Transpose 发表于 2023-5-5 19:27
要么参数没设置对,要么矩阵不可逆
info是拿来标志是否运算成功的

C:\Users\Yeah\Desktop
参数可能是图中标注的(N/2,LDA/2,IPIVW等等)这些吗
作者: Transpose    时间: 2023-5-5 20:01
lili 发表于 2023-5-5 19:45
参数可能是图中标注的(N/2,LDA/2,IPIVW等等)这些吗

是的,每一个参数都需要匹配,由于lapack本身不检查参数的匹配,所以很容易写错

作者: lili    时间: 2023-5-6 09:11
Transpose 发表于 2023-5-5 20:01
是的,每一个参数都需要匹配,由于lapack本身不检查参数的匹配,所以很容易写错
...

嗯嗯,我确认了一遍参数没问题,还是运算还是直接到了100处,也就是说明(INFO1.NE.0)(INFO2.NE.0),那是不是就只可能我要求逆的这个矩阵不可逆呢?
作者: Transpose    时间: 2023-5-6 11:48
应该是这样的





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2