16 USE dbcsr_api,
ONLY: dbcsr_type
27 LOGICAL :: local_comp = .false., converged = .false.
28 INTEGER :: myproc = -1
29 TYPE(mp_comm_type) :: mp_group = mp_comm_type(), pcol_group = mp_comm_type()
30 INTEGER :: max_iter = -1
31 INTEGER :: current_step = -1
32 INTEGER :: nval_req = -1
33 INTEGER :: selection_crit = -1
34 INTEGER :: nval_out = -1
35 INTEGER :: nrestart = -1
36 REAL(
real_8) :: threshold = 0.0_real_8
37 LOGICAL :: symmetric = .false.
38 LOGICAL :: generalized_ev = .false.
39 LOGICAL :: iram = .false.
40 LOGICAL :: has_initial_vector = .false.
41 INTEGER,
DIMENSION(:),
POINTER :: selected_ind => null()
45 REAL(kind=
real_8),
POINTER,
DIMENSION(:) :: f_vec => null()
46 REAL(kind=
real_8),
POINTER,
DIMENSION(:, :) :: hessenberg => null()
47 REAL(kind=
real_8),
POINTER,
DIMENSION(:, :) :: local_history => null()
48 COMPLEX(real_8),
POINTER,
DIMENSION(:) :: evals => null()
49 COMPLEX(real_8),
POINTER,
DIMENSION(:, :) :: revec => null()
50 REAL(kind=
real_8) :: rho_scale = 0.0_real_8
51 REAL(kind=
real_8),
POINTER,
DIMENSION(:) :: x_vec => null()
55 REAL(kind=
real_4),
POINTER,
DIMENSION(:) :: f_vec => null()
56 REAL(kind=
real_4),
POINTER,
DIMENSION(:, :) :: hessenberg => null()
57 REAL(kind=
real_4),
POINTER,
DIMENSION(:, :) :: local_history => null()
58 COMPLEX(real_4),
POINTER,
DIMENSION(:) :: evals => null()
59 COMPLEX(real_4),
POINTER,
DIMENSION(:, :) :: revec => null()
60 REAL(kind=
real_4) :: rho_scale = 0.0_real_4
61 REAL(kind=
real_4),
POINTER,
DIMENSION(:) :: x_vec => null()
65 COMPLEX(kind=real_8),
POINTER,
DIMENSION(:) :: f_vec => null()
66 COMPLEX(kind=real_8),
POINTER,
DIMENSION(:, :) :: hessenberg => null()
67 COMPLEX(kind=real_8),
POINTER,
DIMENSION(:, :) :: local_history => null()
68 COMPLEX(real_8),
POINTER,
DIMENSION(:) :: evals => null()
69 COMPLEX(real_8),
POINTER,
DIMENSION(:, :) :: revec => null()
70 COMPLEX(kind=real_8) :: rho_scale = (0.0_real_8, 0.0_real_8)
71 COMPLEX(kind=real_8),
POINTER,
DIMENSION(:) :: x_vec => null()
75 COMPLEX(kind=real_4),
POINTER,
DIMENSION(:) :: f_vec => null()
76 COMPLEX(kind=real_4),
POINTER,
DIMENSION(:, :) :: hessenberg => null()
77 COMPLEX(kind=real_4),
POINTER,
DIMENSION(:, :) :: local_history => null()
78 COMPLEX(real_4),
POINTER,
DIMENSION(:) :: evals => null()
79 COMPLEX(real_4),
POINTER,
DIMENSION(:, :) :: revec => null()
80 COMPLEX(kind=real_4) :: rho_scale = (0.0_real_4, 0.0_real_4)
81 COMPLEX(kind=real_4),
POINTER,
DIMENSION(:) :: x_vec => null()
85 TYPE(arnoldi_data_s_type),
POINTER,
PRIVATE :: data_s => null()
86 TYPE(arnoldi_data_d_type),
POINTER,
PRIVATE :: data_d => null()
87 TYPE(arnoldi_data_c_type),
POINTER,
PRIVATE :: data_c => null()
88 TYPE(arnoldi_data_z_type),
POINTER,
PRIVATE :: data_z => null()
89 TYPE(arnoldi_control_type),
POINTER,
PRIVATE :: control => null()
93 TYPE(dbcsr_type) :: input_vec
94 TYPE(dbcsr_type) :: result_vec
95 TYPE(dbcsr_type) :: rep_col_vec
96 TYPE(dbcsr_type) :: rep_row_vec
101 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'arnoldi_types'
119 ar_data%control => control
129 INTEGER,
DIMENSION(:),
POINTER :: selected_ind
131 selected_ind => ar_data%control%selected_ind
144 data_d => ar_data%data_d
157 data_s => ar_data%data_s
170 data_z => ar_data%data_z
183 data_c => ar_data%data_c
196 ar_data%data_d => data_d
209 ar_data%data_s => data_s
222 ar_data%data_c => data_c
235 ar_data%data_z => data_z
248 control => ar_data%control
259 LOGICAL :: is_present
261 is_present =
ASSOCIATED(ar_data%data_d)
272 LOGICAL :: is_present
274 is_present =
ASSOCIATED(ar_data%data_s)
285 LOGICAL :: is_present
287 is_present =
ASSOCIATED(ar_data%data_z)
298 LOGICAL :: is_present
300 is_present =
ASSOCIATED(ar_data%data_c)
311 COMPLEX(real_8),
DIMENSION(:),
POINTER :: evals
313 evals => ar_data%data_d%evals
324 COMPLEX(real_4),
DIMENSION(:),
POINTER :: evals
326 evals => ar_data%data_s%evals
337 COMPLEX(real_8),
DIMENSION(:),
POINTER :: evals
339 evals => ar_data%data_z%evals
350 COMPLEX(real_4),
DIMENSION(:),
POINTER :: evals
352 evals => ar_data%data_c%evals
collection of types used in arnoldi
subroutine, public set_data_s(ar_data, data_s)
...
subroutine, public set_control(ar_data, control)
...
elemental logical function, public has_s_real(ar_data)
...
type(arnoldi_data_c_type) function, pointer, public get_data_c(ar_data)
...
subroutine, public set_data_c(ar_data, data_c)
...
elemental logical function, public has_s_cmplx(ar_data)
...
complex(real_4) function, dimension(:), pointer, public get_evals_s(ar_data)
...
type(arnoldi_data_s_type) function, pointer, public get_data_s(ar_data)
...
type(arnoldi_data_z_type) function, pointer, public get_data_z(ar_data)
...
subroutine, public set_data_d(ar_data, data_d)
...
logical function, public has_d_real(ar_data)
...
subroutine, public set_data_z(ar_data, data_z)
...
complex(real_4) function, dimension(:), pointer, public get_evals_c(ar_data)
...
type(arnoldi_data_d_type) function, pointer, public get_data_d(ar_data)
...
type(arnoldi_control_type) function, pointer, public get_control(ar_data)
...
elemental logical function, public has_d_cmplx(ar_data)
...
complex(real_8) function, dimension(:), pointer, public get_evals_d(ar_data)
...
complex(real_8) function, dimension(:), pointer, public get_evals_z(ar_data)
...
integer function, dimension(:), pointer, public get_sel_ind(ar_data)
...
Defines the basic variable types.
integer, parameter, public real_4
integer, parameter, public real_8
Interface to the message passing library MPI.