14 USE dbm_api,
ONLY: dbm_distribution_obj,&
22 #include "../../base/base_uses.f90"
27 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'dbt_tas_types'
30 dbt_tas_distribution_type, &
52 TYPE dbt_tas_split_info
53 TYPE(mp_cart_type) :: mp_comm
54 INTEGER,
DIMENSION(2) :: pdims = [-1, -1]
55 INTEGER :: igroup = -1
56 INTEGER :: ngroup = -1
57 INTEGER :: split_rowcol = -1
58 INTEGER :: pgrid_split_size = -1
59 INTEGER :: group_size = -1
60 TYPE(mp_cart_type) :: mp_comm_group
61 INTEGER,
ALLOCATABLE :: ngroup_opt
62 LOGICAL,
DIMENSION(2) :: strict_split = [.false., .false.]
63 INTEGER,
POINTER :: refcount => null()
66 TYPE dbt_tas_distribution_type
67 TYPE(dbt_tas_split_info) :: info
68 TYPE(dbm_distribution_obj) :: dbm_dist
69 CLASS(dbt_tas_distribution),
ALLOCATABLE :: row_dist
70 CLASS(dbt_tas_distribution),
ALLOCATABLE :: col_dist
71 INTEGER(KIND=int_8),
ALLOCATABLE,
DIMENSION(:) :: local_rowcols
81 TYPE dbt_tas_mm_storage
82 TYPE(dbt_tas_type),
POINTER :: store_batched => null()
83 TYPE(dbt_tas_type),
POINTER :: store_batched_repl => null()
84 LOGICAL :: batched_out = .false.
85 LOGICAL :: batched_trans = .false.
86 REAL(dp) :: batched_beta = 1.0_dp
103 TYPE(dbt_tas_distribution_type) :: dist
104 CLASS(dbt_tas_rowcol_data),
ALLOCATABLE :: row_blk_size
105 CLASS(dbt_tas_rowcol_data),
ALLOCATABLE :: col_blk_size
106 TYPE(dbm_type) :: matrix
107 INTEGER(KIND=int_8) :: nblkrows = -1
108 INTEGER(KIND=int_8) :: nblkcols = -1
109 INTEGER(KIND=int_8) :: nblkrowscols_split = -1
110 INTEGER(KIND=int_8) :: nfullrows = -1
111 INTEGER(KIND=int_8) :: nfullcols = -1
112 LOGICAL :: valid = .false.
113 INTEGER :: do_batched = 0
114 TYPE(dbt_tas_mm_storage),
ALLOCATABLE :: mm_storage
115 LOGICAL :: has_opt_pgrid = .false.
118 TYPE dbt_tas_iterator
119 TYPE(dbt_tas_distribution_type),
POINTER :: dist => null()
120 TYPE(dbm_iterator) :: iter
121 END TYPE dbt_tas_iterator
Global data (distribution and block sizes) for tall-and-skinny matrices For very sparse matrices with...
DBT tall-and-skinny base types. Mostly wrappers around existing DBM routines.
Defines the basic variable types.
integer, parameter, public int_8
integer, parameter, public dp
Interface to the message passing library MPI.