dbcsr_tensor_api Module

This is the start of a dbcsr_tensor_api, all publically needed functions are exported here. The others remain private to the library. Currently, this is the CP2K used set. Ultimately, a reduced subset and well defined api will remain, possibly grouped in to standard and expert api. Currently, this is work in progress.



Variables

Type Visibility Attributes Name Initial
character(len=*), private, parameter :: moduleN = 'dbcsr_tensor_api'

Functions

public function dbcsr_t_nd_mp_comm(comm_2d, map1_2d, map2_2d, dims_nd, dims1_nd, dims2_nd, pdims_2d, tdims, nsplit, dimsplit)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: comm_2d
integer, intent(in), DIMENSION(:) :: map1_2d
integer, intent(in), DIMENSION(:) :: map2_2d
integer, intent(in), optional, DIMENSION(SIZE(map1_2d) + SIZE(map2_2d)) :: dims_nd
integer, intent(in), optional, DIMENSION(SIZE(map1_2d)) :: dims1_nd
integer, intent(in), optional, DIMENSION(SIZE(map2_2d)) :: dims2_nd
integer, intent(in), optional, DIMENSION(2) :: pdims_2d
integer, intent(in), optional, DIMENSION(SIZE(map1_2d) + SIZE(map2_2d)) :: tdims
integer, intent(in), optional :: nsplit
integer, intent(in), optional :: dimsplit

Return Value type(dbcsr_t_pgrid_type)


Subroutines

public subroutine dbcsr_t_pgrid_create_expert(mp_comm, dims, pgrid, map1_2d, map2_2d, tensor_dims, nsplit, dimsplit)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mp_comm
integer, intent(inout), DIMENSION(:) :: dims
type(dbcsr_t_pgrid_type), intent(out) :: pgrid
integer, intent(in), DIMENSION(:) :: map1_2d
integer, intent(in), DIMENSION(:) :: map2_2d
integer, intent(in), optional, DIMENSION(:) :: tensor_dims
integer, intent(in), optional :: nsplit
integer, intent(in), optional :: dimsplit

public subroutine dbcsr_t_pgrid_create(mp_comm, dims, pgrid, tensor_dims)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mp_comm
integer, intent(inout), DIMENSION(:) :: dims
type(dbcsr_t_pgrid_type), intent(out) :: pgrid
integer, intent(in), optional, DIMENSION(:) :: tensor_dims