map for overlapping atoms, represents many-to-one relation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | id | id of the atom in the code, which should handle it |
|||
integer, | public, | dimension(:), allocatable | :: | codes | ids of codes in which this atom is present (excluding the current one) |
||
integer, | public, | dimension(:), allocatable | :: | atoms | atom ids of this atom in other codes |
add an overlap entry to the map
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(map_type), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | code_id | id of the code, treating the overlapped atom |
||
integer, | intent(in) | :: | atom_id | id of an overlapped atom within its treating code |
type :: map_type
private
!> id of the atom in the code, which should handle it
integer, public :: id
!> ids of codes in which this atom is present
!> (excluding the current one)
integer, dimension(:), allocatable, public :: codes
!> atom ids of this atom in other codes
integer, dimension(:), allocatable, public :: atoms
contains
private
procedure, public :: init => init_map
procedure, public :: add_entry => add_map_entry
procedure :: copy=>copy_map
generic, public :: assignment(=) => copy
end type map_type