13 #include "sll_working_precision.h"
31 sll_int32 :: n_rows = 0
32 sll_int32 :: n_cols = 0
34 sll_int32 :: n_global_rows = 0
35 sll_int32 :: n_global_cols = 0
37 sll_int32 :: n_total_rows = 0
38 sll_int32 :: n_total_cols = 0
40 logical :: is_allocated = .false.
41 logical :: verbose = .false.
45 generic :: solve => solve_real
65 sll_real64,
dimension(:) ,
intent(in ) :: rhs
66 sll_real64,
dimension(:) ,
intent( out) :: unknown
78 logical ,
intent(in) :: verbose
90 character(len=*) ,
intent(in) :: filename
128 self % n_rows = linear_operator % n_rows
129 self % n_cols = linear_operator % n_cols
131 self % n_global_rows = linear_operator % n_global_rows
132 self % n_global_cols = linear_operator % n_global_cols
134 select type (linear_operator)
136 self % n_total_rows = self % n_global_rows
137 self % n_total_cols = self % n_global_cols
139 self % n_total_rows = self % n_global_rows * linear_operator % n_block_rows
140 self % n_total_cols = self % n_global_cols * linear_operator % n_block_cols
154 logical ,
intent(in) :: verbose
157 self % verbose = verbose
module for abstract linear operator
module for a block linear operator
module for abstract linear solver
subroutine initialize_linear_solver_abstract(self, linear_operator)
initialize linear solver from linear operator
subroutine set_verbose_linear_solver_abstract(self, verbose)
sets the verbose for the linear solver object
Module to select the kind parameter.
class for abstract linear operator
class for a linear operator_block
class for abstract linear solver