schur_space Interface

public interface schur_space

Computes the working array space required by the Schur decomposition solver (Specification)

Description

This interface returns the size of the real or complex working storage required by the Schur decomposition solver. The working size only depends on the kind (real or complex) and size of the matrix being decomposed. Storage size can be used to pre-allocate a working array in case several repeated Schur decompositions of same-size matrices are sought. If pre-allocated working arrays are provided, no internal allocations will take place during the decomposition.


Subroutines

private module subroutine get_schur_c_workspace(a, lwork, err)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,m]

integer(kind=ilp), intent(out) :: lwork

Minimum workspace size for the decomposition operation

type(linalg_state_type), intent(out), optional :: err

State return flag. Returns an error if the query failed

private module subroutine get_schur_d_workspace(a, lwork, err)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,m]

integer(kind=ilp), intent(out) :: lwork

Minimum workspace size for the decomposition operation

type(linalg_state_type), intent(out), optional :: err

State return flag. Returns an error if the query failed

private module subroutine get_schur_s_workspace(a, lwork, err)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in), target :: a(:,:)

Input matrix a[m,m]

integer(kind=ilp), intent(out) :: lwork

Minimum workspace size for the decomposition operation

type(linalg_state_type), intent(out), optional :: err

State return flag. Returns an error if the query failed

private module subroutine get_schur_z_workspace(a, lwork, err)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), target :: a(:,:)

Input matrix a[m,m]

integer(kind=ilp), intent(out) :: lwork

Minimum workspace size for the decomposition operation

type(linalg_state_type), intent(out), optional :: err

State return flag. Returns an error if the query failed