I'm writting a subroutine in which the mkl QR factorization subroutine geqp3 is used. However, I find that it seems the geqp3 do nothing! The subroutine is listed below. I don't know what's wrong with my code and urgently need your help. Thanks!
implicit none complex(4) WSS(:,:),tempWSS(:,:),WTSR(:,:)
! do i=1,m
How a subprogram functions depends quite a bit on what arguments are passed to it. What arguments did you call the subroutine with when "GEQP3 did nothing" and what basis did you reach that conclusion?
Thank you very much for your reply! My expression of "do nothing" is not accurate. What I mean is that after "call geqp3(tempWSS(1:m,1:n),jpvtc(1:n))" the elements in jpvtc still are zeros and the values in tempWSS(1:m,1:n) is the same as that before calling this function. The attached is the debug information and the subroutines related to the problem. Please help me check what is the potential problem with my program and also give me some suggestion of my programming style cause I'm relatively new in using Fortran 95. Thank you very much!
Your file "debug-infor.docx" does not provide significant new information. In particular, I need to know what the values are of the arguments to geqp3().
Here is a simple example of using geqp3. The output shows that the input arguments were changed (as expected).
use mkl95_lapack, only : geqp3
real, dimension (3,3) :: A
real :: tau(3)
data A/4.1,1.2,-2.2, -1.9,5.1,3.5, -1.3, -2.4, 7.7/
call geqp3(A, jpiv, tau, info)
end program xgeqp3