This is the lowest level of data object and will hold the actual data involved with the field matrix
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
complex, | public, | dimension(:,:), allocatable | :: | data |
This is the field data |
||
integer, | public | :: | row_llim |
The row limits this block corresponds to |
|||
integer, | public | :: | row_ulim |
The row limits this block corresponds to |
|||
integer, | public | :: | col_llim |
The col limits this block corresponds to |
|||
integer, | public | :: | col_ulim |
The col limits this block corresponds to |
|||
integer, | public | :: | nrow |
The size of the row block |
|||
integer, | public | :: | ncol |
The size of the row block |
|||
complex, | public, | dimension(:), allocatable | :: | tmp_sum |
Work space for field update |
||
integer, | public | :: | ir_ind |
Property of rowblock |
|||
integer, | public | :: | it_ind |
Details of parents |
|||
integer, | public | :: | ik_ind |
Details of parents |
|||
integer, | public | :: | is_ind |
Details of parents so cell can find itself |
|||
integer, | public | :: | ic_ind |
Details of parents so cell can find itself |
Deallocate storage space
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self |
Allocate storage space
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self |
Initialise the members of the rowblock instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self | |||
integer, | intent(in) | :: | ifq | |||
integer, | intent(in) | :: | ic | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | is | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | ncol | |||
integer, | intent(in) | :: | nextend |
The length of the parent supercell's real space domain. Represents the spacing between the start of different field/field equations as we store data as the full real space domain for each field, e.g. [fieldeq(:), fieldeqa(:), fieldeqp(:)], rather than say interleaved, e.g. [[fieldeq(1), fieldeqa(1), fieldeqp(1)], [fieldeq(2), fieldeqa(2), fieldeqp(2)],...] |
Debug printing
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(in) | :: | self |
Matrix vector multiplication
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(in) | :: | self | |||
complex, | intent(in), | dimension(self%ncol) | :: | vect |
Matrix vector multiplication stored in tmp_sum
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self | |||
complex, | intent(in), | dimension(self%ncol) | :: | vect |
Convert extended row index to local row index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(in) | :: | self | |||
integer, | intent(in) | :: | irex |
A routine to reset the object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self |
Set the nrow variables
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rowblock_type), | intent(inout) | :: | self |
type :: rowblock_type
complex, dimension(:,:), allocatable :: data !< This is the field data
integer :: row_llim, row_ulim !< The row limits this block corresponds to
integer :: col_llim, col_ulim !< The col limits this block corresponds to
integer :: nrow, ncol !< The size of the row block
complex, dimension(:),allocatable :: tmp_sum !< Work space for field update
!/Row and parent properties. Mostly for debug printing
integer :: ir_ind !< Property of rowblock
integer :: it_ind, ik_ind !< Details of parents
integer :: is_ind, ic_ind !< Details of parents so cell can find itself
contains
procedure :: deallocate => rb_deallocate
procedure :: allocate => rb_allocate
procedure :: init => rb_init
procedure :: debug_print => rb_debug_print
procedure :: mv_mult_fun => rb_mv_mult_fun
procedure :: mv_mult => rb_mv_mult
procedure :: irex_to_ir => rb_irex_to_irloc
procedure :: reset => rb_reset
procedure :: set_nrow => rb_set_nrow
end type rowblock_type