schur Interface

public interface schur

Computes the Schur factorization of a general square matrix.

Description

This interface provides methods to compute the Schur factorization of a real or complex square matrix. Note that, if is real, it returns the real Schur form.

Result array eigvals returns the eigenvalues of while Z contains the Schur basis.

Syntax

call schur(A, Z, eigvals)

Arguments

A: real or complex square array containing the coefficient matrix. On exit, it is overwritten with its (real) Schur factorization. It is an intent(inout) argument.

Z: Two-dimensional square array of the same size, type and kind as A. It contains the Schur basis. It is an intent(out) argument.

eigvals: complex rank-1 array of the same kind as A containing the eigenvalues. It is an intent(out) arguement.


Module Procedures

private subroutine schur_rsp(A, Z, eigvals)

Compute the Schur form (in-place) and Schur vectors of the matrix A.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(inout) :: A(:,:)

Matrix to be factorized.

real(kind=sp), intent(out) :: Z(:,:)

Schur basis.

complex(kind=sp), intent(out) :: eigvals(:)

Eigenvalues.

private subroutine schur_rdp(A, Z, eigvals)

Compute the Schur form (in-place) and Schur vectors of the matrix A.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: A(:,:)

Matrix to be factorized.

real(kind=dp), intent(out) :: Z(:,:)

Schur basis.

complex(kind=dp), intent(out) :: eigvals(:)

Eigenvalues.

private subroutine schur_csp(A, Z, eigvals)

Compute the Schur form (in-place) and Schur vectors of the matrix A.

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(inout) :: A(:,:)

Matrix to be factorized.

complex(kind=sp), intent(out) :: Z(:,:)

Schur basis.

complex(kind=sp), intent(out) :: eigvals(:)

Eigenvalues.

private subroutine schur_cdp(A, Z, eigvals)

Compute the Schur form (in-place) and Schur vectors of the matrix A.

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: A(:,:)

Matrix to be factorized.

complex(kind=dp), intent(out) :: Z(:,:)

Schur basis.

complex(kind=dp), intent(out) :: eigvals(:)

Eigenvalues.