Report Typos and Errors
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
splines
splines_basic
sll_m_spline_matrix_base.F90
Go to the documentation of this file.
1
7
8
module
sll_m_spline_matrix_base
9
10
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11
use
sll_m_working_precision
,
only
:
f64
12
13
implicit none
14
15
public
::
sll_c_spline_matrix
16
17
private
18
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19
21
integer
,
parameter
::
wp
=
f64
22
23
type
,
abstract
::
sll_c_spline_matrix
24
contains
25
procedure
(
i_sub_set_element
),
deferred
:: set_element
26
procedure
(
i_sub_factorize
),
deferred
:: factorize
27
procedure
(
i_sub_solve_inplace
),
deferred
:: solve_inplace
28
procedure
(
i_sub_write
),
deferred
:: write
29
procedure
(
i_sub_free
),
deferred
:: free
30
end type
sll_c_spline_matrix
31
32
abstract
interface
33
34
!-----------------------------------------------------------------------------
35
subroutine
i_sub_set_element
(self, i, j, a_ij)
36
import
sll_c_spline_matrix
,
wp
37
class
(
sll_c_spline_matrix
),
intent(inout)
:: self
38
integer
,
intent(in)
:: i
39
integer
,
intent(in)
:: j
40
real
(wp),
intent(in)
:: a_ij
41
end subroutine
i_sub_set_element
42
43
!-----------------------------------------------------------------------------
44
subroutine
i_sub_factorize
(self)
45
import
sll_c_spline_matrix
,
wp
46
class
(
sll_c_spline_matrix
),
intent(inout)
:: self
47
end subroutine
i_sub_factorize
48
49
!-----------------------------------------------------------------------------
50
subroutine
i_sub_solve_inplace
(self, bx)
51
import
sll_c_spline_matrix
,
wp
52
class
(
sll_c_spline_matrix
),
intent(in)
:: self
53
real
(wp),
intent(inout)
:: bx(:)
54
end subroutine
i_sub_solve_inplace
55
56
!-----------------------------------------------------------------------------
57
subroutine
i_sub_write
(self, unit, fmt)
58
import
sll_c_spline_matrix
,
wp
59
class
(
sll_c_spline_matrix
),
intent(in)
:: self
60
integer
,
optional
,
intent(in)
:: unit
61
character(len=*)
,
optional
,
intent(in)
:: fmt
62
end subroutine
i_sub_write
63
64
!-----------------------------------------------------------------------------
65
subroutine
i_sub_free
(self)
66
import
sll_c_spline_matrix
67
class
(
sll_c_spline_matrix
),
intent(inout)
:: self
68
end subroutine
i_sub_free
69
70
end interface
71
72
end module
sll_m_spline_matrix_base
sll_m_spline_matrix_base::i_sub_factorize
Definition:
sll_m_spline_matrix_base.F90:44
sll_m_spline_matrix_base::i_sub_free
Definition:
sll_m_spline_matrix_base.F90:65
sll_m_spline_matrix_base::i_sub_set_element
Definition:
sll_m_spline_matrix_base.F90:35
sll_m_spline_matrix_base::i_sub_solve_inplace
Definition:
sll_m_spline_matrix_base.F90:50
sll_m_spline_matrix_base::i_sub_write
Definition:
sll_m_spline_matrix_base.F90:57
sll_m_spline_matrix_base
Abstract class for small matrix library with basic operations: set matrix element,...
Definition:
sll_m_spline_matrix_base.F90:8
sll_m_spline_matrix_base::wp
integer, parameter wp
Working precision.
Definition:
sll_m_spline_matrix_base.F90:21
sll_m_working_precision
Module to select the kind parameter.
Definition:
sll_m_working_precision.F90:29
sll_m_working_precision::f64
integer, parameter, public f64
f64 is the kind type for 64-bit reals (double precision)
Definition:
sll_m_working_precision.F90:53
sll_m_spline_matrix_base::sll_c_spline_matrix
Definition:
sll_m_spline_matrix_base.F90:23
Report Typos and Errors
Generated on Mon Oct 23 2023 19:15:41 for Semi-Lagrangian Library by
1.9.1