(git:6a2e663)
cp_fm_struct Module Reference

represent the structure of a full matrix More...

Functions/Subroutines

subroutine, public cp_fm_struct_create (fmstruct, para_env, context, nrow_global, ncol_global, nrow_block, ncol_block, descriptor, first_p_pos, local_leading_dimension, template_fmstruct, square_blocks, force_block)
 allocates and initializes a full matrix structure More...
 
subroutine, public cp_fm_struct_retain (fmstruct)
 retains a full matrix structure More...
 
subroutine, public cp_fm_struct_release (fmstruct)
 releases a full matrix structure More...
 
logical function, public cp_fm_struct_equivalent (fmstruct1, fmstruct2)
 returns true if the two matrix structures are equivalent, false otherwise. More...
 
subroutine, public cp_fm_struct_get (fmstruct, para_env, context, descriptor, ncol_block, nrow_block, nrow_global, ncol_global, first_p_pos, row_indices, col_indices, nrow_local, ncol_local, nrow_locals, ncol_locals, local_leading_dimension)
 returns the values of various attributes of the matrix structure More...
 
subroutine, public cp_fm_struct_write_info (fmstruct, io_unit)
 Write nicely formatted info about the FM struct to the given I/O unit. More...
 
subroutine, public cp_fm_struct_double (fmstruct, struct, context, col, row)
 creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp) More...
 
subroutine, public cp_fm_struct_config (nrow_block, ncol_block, force_block)
 allows to modify the default settings for matrix creation More...
 
integer function, public cp_fm_struct_get_nrow_block ()
 ... More...
 
integer function, public cp_fm_struct_get_ncol_block ()
 ... More...
 

Detailed Description

represent the structure of a full matrix

History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Function/Subroutine Documentation

◆ cp_fm_struct_create()

subroutine, public cp_fm_struct::cp_fm_struct_create ( type(cp_fm_struct_type), pointer  fmstruct,
type(mp_para_env_type), optional, target  para_env,
type(cp_blacs_env_type), optional, target  context,
integer, intent(in), optional  nrow_global,
integer, intent(in), optional  ncol_global,
integer, intent(in), optional  nrow_block,
integer, intent(in), optional  ncol_block,
integer, dimension(9), intent(in), optional  descriptor,
integer, dimension(2), optional  first_p_pos,
integer, intent(in), optional  local_leading_dimension,
type(cp_fm_struct_type), optional, pointer  template_fmstruct,
logical, intent(in), optional  square_blocks,
logical, intent(in), optional  force_block 
)

allocates and initializes a full matrix structure

Parameters
fmstructthe pointer that will point to the new structure
para_envthe parallel environment
contextthe blacs context of this matrix
nrow_globalthe number of row of the full matrix
ncol_globalthe number of columns of the full matrix
nrow_blockthe number of rows of a block of the matrix, omit or set to -1 to use the built-in defaults
ncol_blockthe number of columns of a block of the matrix, omit or set to -1 to use the built-in defaults
descriptorthe scalapack descriptor of the matrix (if not given a new one is allocated
first_p_pos...
local_leading_dimensionthe leading dimension of the locally stored data block
template_fmstructa matrix structure where to take the default values
square_blocks...
force_block...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 122 of file cp_fm_struct.F.

Here is the call graph for this function:

◆ cp_fm_struct_retain()

subroutine, public cp_fm_struct::cp_fm_struct_retain ( type(cp_fm_struct_type), intent(inout)  fmstruct)

retains a full matrix structure

Parameters
fmstructthe structure to retain
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 305 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_release()

subroutine, public cp_fm_struct::cp_fm_struct_release ( type(cp_fm_struct_type), pointer  fmstruct)

releases a full matrix structure

Parameters
fmstructthe structure to release
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 319 of file cp_fm_struct.F.

Here is the call graph for this function:

◆ cp_fm_struct_equivalent()

logical function, public cp_fm_struct::cp_fm_struct_equivalent ( type(cp_fm_struct_type), pointer  fmstruct1,
type(cp_fm_struct_type), pointer  fmstruct2 
)

returns true if the two matrix structures are equivalent, false otherwise.

Parameters
fmstruct1one of the full matrix structures to compare
fmstruct2the second of the full matrix structures to compare
Returns
...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 356 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_get()

subroutine, public cp_fm_struct::cp_fm_struct_get ( type(cp_fm_struct_type), intent(inout)  fmstruct,
type(mp_para_env_type), optional, pointer  para_env,
type(cp_blacs_env_type), optional, pointer  context,
integer, dimension(9), intent(out), optional  descriptor,
integer, intent(out), optional  ncol_block,
integer, intent(out), optional  nrow_block,
integer, intent(out), optional  nrow_global,
integer, intent(out), optional  ncol_global,
integer, dimension(2), intent(out), optional  first_p_pos,
integer, dimension(:), optional, pointer  row_indices,
integer, dimension(:), optional, pointer  col_indices,
integer, intent(out), optional  nrow_local,
integer, intent(out), optional  ncol_local,
integer, dimension(:), optional, pointer  nrow_locals,
integer, dimension(:), optional, pointer  ncol_locals,
integer, intent(out), optional  local_leading_dimension 
)

returns the values of various attributes of the matrix structure

Parameters
fmstructthe structure you want info about
para_env...
context...
descriptor...
ncol_block...
nrow_block...
nrow_global...
ncol_global...
first_p_pos...
row_indices...
col_indices...
nrow_local...
ncol_local...
nrow_locals...
ncol_locals...
local_leading_dimension...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 404 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_write_info()

subroutine, public cp_fm_struct::cp_fm_struct_write_info ( type(cp_fm_struct_type), intent(in)  fmstruct,
integer, intent(in)  io_unit 
)

Write nicely formatted info about the FM struct to the given I/O unit.

Parameters
fmstructa cp_fm_struct_type instance
io_unitthe I/O unit to use for writing

Definition at line 490 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_double()

subroutine, public cp_fm_struct::cp_fm_struct_double ( type(cp_fm_struct_type), pointer  fmstruct,
type(cp_fm_struct_type), intent(inout)  struct,
type(cp_blacs_env_type), intent(inout), target  context,
logical, intent(in)  col,
logical, intent(in)  row 
)

creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp)

Parameters
fmstructthe struct to create
structstruct of either A or B
context...
colin which direction the matrix should be enlarged
rowin which direction the matrix should be enlarged
History
06.2009 created [fschiff]
Author
Florian Schiffmann

Definition at line 535 of file cp_fm_struct.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_fm_struct_config()

subroutine, public cp_fm_struct::cp_fm_struct_config ( integer, intent(in), optional  nrow_block,
integer, intent(in), optional  ncol_block,
logical, intent(in), optional  force_block 
)

allows to modify the default settings for matrix creation

Parameters
nrow_block...
ncol_block...
force_block...

Definition at line 631 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_get_nrow_block()

integer function, public cp_fm_struct::cp_fm_struct_get_nrow_block

...

Returns
...

Definition at line 645 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_get_ncol_block()

integer function, public cp_fm_struct::cp_fm_struct_get_ncol_block

...

Returns
...

Definition at line 655 of file cp_fm_struct.F.

Here is the caller graph for this function: