sll_c_spline_matrix Derived Type

type, public, abstract :: sll_c_spline_matrix


Inherited by

type~~sll_c_spline_matrix~~InheritedByGraph type~sll_c_spline_matrix sll_c_spline_matrix type~c_sbase c_sbase type~c_sbase->type~sll_c_spline_matrix mass type~sll_t_spline_interpolator_1d sll_t_spline_interpolator_1d type~sll_t_spline_interpolator_1d->type~sll_c_spline_matrix matrix type~sll_t_spline_matrix_banded sll_t_spline_matrix_banded type~sll_t_spline_matrix_banded->type~sll_c_spline_matrix type~sll_t_spline_matrix_dense sll_t_spline_matrix_dense type~sll_t_spline_matrix_dense->type~sll_c_spline_matrix type~t_sbase t_sBase type~t_sbase->type~c_sbase type~t_sbase_spl t_sBase_spl type~t_sbase_spl->type~sll_t_spline_interpolator_1d Interpol type~t_sbase_spl->type~t_sbase type~t_base t_base type~t_base->type~t_sbase s type~t_sbase_disc t_sBase_disc type~t_sbase_disc->type~t_sbase type~t_transform_sfl t_transform_sfl type~t_transform_sfl->type~t_base X1sfl_base, X2sfl_base, GZ_base, GZsfl_base

Type-Bound Procedures

procedure(i_sub_mat_copy), public, deferred :: mat_copy

  • subroutine i_sub_mat_copy(self, tocopy) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    class(sll_c_spline_matrix), intent(in) :: tocopy

procedure(i_sub_mat_add), public, deferred :: mat_add

  • subroutine i_sub_mat_add(self, a, amat, b, bmat) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    real(kind=wp), intent(in) :: a
    class(sll_c_spline_matrix), intent(in) :: amat
    real(kind=wp), intent(in) :: b
    class(sll_c_spline_matrix), intent(in) :: bmat

procedure(i_sub_set_element), public, deferred :: set_element

  • subroutine i_sub_set_element(self, i, j, a_ij) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j
    real(kind=wp), intent(in) :: a_ij

procedure(i_sub_set_element), public, deferred :: add_element

  • subroutine i_sub_set_element(self, i, j, a_ij) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j
    real(kind=wp), intent(in) :: a_ij

procedure(i_sub_get_element), public, deferred :: get_element

  • function i_sub_get_element(self, i, j) result(a_ij) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j

    Return Value real(kind=wp)

procedure(i_sub_matvec_prod), public, deferred :: matvec_prod

  • function i_sub_matvec_prod(self, v_in) result(v_out) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    real(kind=wp), intent(in) :: v_in(:)

    Return Value real(kind=wp), (size(v_in))

procedure(i_sub_factorize), public, deferred :: factorize

  • subroutine i_sub_factorize(self) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self

procedure(i_sub_solve_inplace), public, deferred :: solve_inplace

  • subroutine i_sub_solve_inplace(self, nrhs, bx) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    integer, intent(in) :: nrhs
    real(kind=wp), intent(inout), dimension(*) :: bx

procedure(i_sub_write), public, deferred :: write

  • subroutine i_sub_write(self, unit, fmt) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    integer, intent(in), optional :: unit
    character(len=*), intent(in), optional :: fmt

procedure(i_sub_free), public, deferred :: free

  • subroutine i_sub_free(self) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self

Source Code

  type, abstract :: sll_c_spline_matrix
  contains
    procedure(i_sub_mat_copy     ), deferred :: mat_copy
    procedure(i_sub_mat_add      ), deferred :: mat_add
    procedure(i_sub_set_element  ), deferred :: set_element
    procedure(i_sub_set_element  ), deferred :: add_element
    procedure(i_sub_get_element  ), deferred :: get_element
    procedure(i_sub_matvec_prod  ), deferred :: matvec_prod
    procedure(i_sub_factorize    ), deferred :: factorize
    procedure(i_sub_solve_inplace), deferred :: solve_inplace
    procedure(i_sub_write        ), deferred :: write
    procedure(i_sub_free         ), deferred :: free
  end type sll_c_spline_matrix