Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=:), | private, | allocatable | :: | algorithm_name | |||
integer(kind=int32), | private, | allocatable | :: | iperm(:) | |||
logical, | private | :: | is_reordered_iperm | = | .false. | ||
logical, | private | :: | is_reordered_perm | = | .false. | ||
integer(kind=int32), | private | :: | num_nodes | = | 0 | ||
integer(kind=int32), | private, | allocatable | :: | perm(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(type_reordering), | intent(inout) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(inout) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(inout) | :: | self | |||
type(holder_elements), | intent(in) | :: | elements(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(inout) | :: | self | |||
character(len=*), | intent(in) | :: | algorithm_name | |||
type(holder_elements), | intent(in) | :: | elements(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(inout) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(inout) | :: | self | |||
type(holder_elements), | intent(in) | :: | elements(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | index_reordered | |||
integer(kind=int32), | intent(inout) | :: | index_original |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | indices_reordered(:) | |||
integer(kind=int32), | intent(inout) | :: | indices_original(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | vector_reordered(:) | |||
integer(kind=int32), | intent(inout) | :: | vector_original(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
real(kind=real64), | intent(in) | :: | vector_reordered(:) | |||
real(kind=real64), | intent(inout) | :: | vector_original(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | index_original | |||
integer(kind=int32), | intent(inout) | :: | index_reordered |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | indices_original(:) | |||
integer(kind=int32), | intent(inout) | :: | indices_reordered(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | vector_original(:) | |||
integer(kind=int32), | intent(inout) | :: | vector_reordered(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_reordering), | intent(in) | :: | self | |||
real(kind=real64), | intent(in) | :: | vector_original(:) | |||
real(kind=real64), | intent(inout) | :: | vector_reordered(:) |
type :: type_reordering private character(:), allocatable :: algorithm_name integer(int32) :: num_nodes = 0 integer(int32), allocatable :: perm(:) ! CM/RCM indices -> original indices integer(int32), allocatable :: iperm(:) ! Original indices -> CM/RCM indices logical :: is_reordered_perm = .false. logical :: is_reordered_iperm = .false. contains procedure, public, pass(self) :: initialize => initialize_type_reordering procedure, private, pass(self) :: rcm_reorder_method procedure, private, pass(self) :: rcm_inverse_method procedure, private, pass(self) :: cm_reorder_method procedure, private, pass(self) :: cm_inverse_method ! CM/RCM ordering -> original ordering procedure, private, pass(self) :: to_original_values_int32 procedure, private, pass(self) :: to_original_values_real64 generic, public :: to_original_value => to_original_values_int32, & !& to_original_values_real64 !& procedure, private, pass(self) :: to_original_index procedure, private, pass(self) :: to_original_indices generic, public :: to_original => to_original_index, & !& to_original_indices !& ! original ordering -> CM/RCM ordering procedure, private, pass(self) :: to_reordered_values_int32 procedure, private, pass(self) :: to_reordered_values_real64 generic, public :: to_reordered_value => to_reordered_values_int32, & !& to_reordered_values_real64 !& procedure, private, pass(self) :: to_reordered_index procedure, private, pass(self) :: to_reordered_indices generic, public :: to_reordered => to_reordered_index, & !& to_reordered_indices !& procedure, public :: get_algorithm_name final :: finalize_type_reordering end type type_reordering