Re: LAPACK library usage in fortran 90



On Oct 24, 3:55 pm, nos...@xxxxxxxxxxxxx (Richard Maine) wrote:
kiwanuka <robert.kiwan...@xxxxxxxxx> wrote:
On Oct 24, 1:45 pm, jwm <jwmwal...@xxxxxxxxx> wrote:
It seems that your DGESVD subroutine has an extra argument. Try adding
the following interface block to your code (maybe before the second
include statement):

INTERFACE
SUBROUTINE DGESVD(JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT,
WORK, LWORK, INFO )
    INTEGER, PARAMETER :: WP = KIND(1.0D0)
    CHARACTER(LEN=1), INTENT(IN) :: JOBU, JOBVT
    INTEGER, INTENT(IN) :: M, N, LDA, LDU, LDVT, LWORK
    INTEGER, INTENT(OUT) :: INFO
    REAL(WP), INTENT(OUT) :: S(*)
    REAL(WP), INTENT(INOUT) :: A(LDA,*)
    REAL(WP), INTENT(OUT) :: U(LDU,*), VT(LDVT,*), WORK(*)
END SUBROUTINE DGESVD
END INTERFACE

Thank you very much! The interface is what was needed! It also forced
other problems to be exposed during compilation.

I doubt that it was "needed". There is nothing in the code that requires
an explicit interface, so it should work the same with or without this.

I can well believe that this could help find the problems (such as the
extra argument that jwm mentioned). But the lack of this should not in
itself be a problem.

--
Richard Maine                    | Good judgment comes from experience;
email: last name at domain . net | experience comes from bad judgment.
domain: summertriangle           |  -- Mark Twain

That is what I thought, which is why I didn't have an interface at
first, but since it solved the problem then I think it is worth
having. I had also mixed up variables with ones I had used to test
the DGESDD subroutine but that has been highlighted by the interface.

Regards,

Robert
.


Quantcast