@@ -8,9 +8,33 @@ submodule (stdlib_linalg) stdlib_linalg_schur
8
8
implicit none(type,external)
9
9
10
10
character(*), parameter :: this = 'schur'
11
+
12
+ !> List of internal GEES tasks:
13
+ !> No task request
14
+ character, parameter :: GEES_NOT = 'N'
15
+
16
+ !> Request Schur vectors to be computed
17
+ character, parameter :: GEES_WITH_VECTORS = 'V'
18
+
19
+ !> Request Schur vectors to be sorted
20
+ character, parameter :: GEES_SORTED_VECTORS = 'S'
11
21
12
22
contains
13
23
24
+ !> Wrapper function for Schur vectors request
25
+ elemental character function gees_vectors(wanted)
26
+ !> Are Schur vectors wanted?
27
+ logical(lk), intent(in) :: wanted
28
+ gees_vectors = merge(GEES_WITH_VECTORS,GEES_NOT,wanted)
29
+ end function gees_vectors
30
+
31
+ !> Wrapper function for Schur vectors request
32
+ elemental character function gees_sort_eigs(sorted)
33
+ !> Should the eigenvalues be sorted?
34
+ logical(lk), intent(in) :: sorted
35
+ gees_sort_eigs = merge(GEES_SORTED_VECTORS,GEES_NOT,sorted)
36
+ end function gees_sort_eigs
37
+
14
38
!> Wrapper function to handle GEES error codes
15
39
elemental subroutine handle_gees_info(info, m, n, ldvs, err)
16
40
integer(ilp), intent(in) :: info, m, n, ldvs
0 commit comments