Create a default nd process topology that is consistent with a given 2d topology. Purpose: a nd tensor defined on the returned process grid can be represented as a DBCSR matrix with the given 2d topology. This is needed to enable contraction of 2 tensors (must have the same 2d process grid). \return with nd cartesian grid
Type  Intent  Optional  Attributes  Name  

type(mp_comm_type),  intent(in)  ::  comm_2d 
communicator with 2dimensional topology 

integer,  intent(in),  DIMENSION(:)  ::  map1_2d 
which ndindices map to first matrix index and in which order which ndindices map to second matrix index and in which order 

integer,  intent(in),  DIMENSION(:)  ::  map2_2d 
which ndindices map to first matrix index and in which order which ndindices map to second matrix index and in which order 

integer,  intent(in),  optional,  DIMENSION(SIZE(map1_2d) + SIZE(map2_2d))  ::  dims_nd 
nd dimensions 
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 
if comm_2d does not have a cartesian topology associated, can input dimensions with pdims_2d 
integer,  intent(in),  optional,  DIMENSION(SIZE(map1_2d) + SIZE(map2_2d))  ::  tdims 
tensor block dimensions. If present, process grid dimensions are created such that good load balancing is ensured even if some of the tensor dimensions are small (i.e. on the same order or smaller than nproc**(1/ndim) where ndim is the tensor rank) 
integer,  intent(in),  optional  ::  nsplit  
integer,  intent(in),  optional  ::  dimsplit 