Documentation for module dbcsr_block_operations

Routines for basic block transformations.

source: dbcsr_block_operations.F
Loading...

Generic procedures:

block_add
dbcsr_block_transpose
dbcsr_data_clear
dbcsr_data_copy
dbcsr_data_set

public Subroutines/Functions:

Copy a block
Copy a block
Copy a block
Copy a block
Conjugate a data area.
Copy data from one data area to another.
Copies a block subset
Negates the real part of a block
Scale a data area.
Copy data from one data area to another.

Generic procedure block_add

Adds two blocks

INTENT(inout)
:: block_a × ×
REAL(real_4),
INTENT(inout)
:: block_a(len) ×
REAL(real_8),
INTENT(inout)
:: block_a(len) ×
COMPLEX(real_4),
INTENT(inout)
:: block_a(len) ×
COMPLEX(real_8),
INTENT(inout)
:: block_a(len) ×
INTENT(in)
:: block_b × ×
REAL(real_4),
INTENT(in)
:: block_b(len) ×
REAL(real_8),
INTENT(in)
:: block_b(len) ×
COMPLEX(real_4),
INTENT(in)
:: block_b(len) ×
COMPLEX(real_8),
INTENT(in)
:: block_b(len) ×
INTEGER,
INTENT(in),
OPTIONAL
:: len ×
INTEGER,
INTENT(in)
:: len × × × × ×
INTEGER,
INTENT(in)
:: lb_a ×
INTEGER,
INTENT(in)
:: lb_b ×

Generic procedure dbcsr_block_transpose

...

REAL(real_4),
INTENT(inout)
:: extent(rows*columns) ×
REAL(real_8),
INTENT(inout)
:: extent(rows*columns) ×
COMPLEX(real_4),
INTENT(inout)
:: extent(rows*columns) ×
COMPLEX(real_8),
INTENT(inout)
:: extent(rows*columns) ×
INTEGER,
INTENT(in)
:: rows × × × × × × × × × × × × × × × ×
INTEGER,
INTENT(in)
:: columns × × × × × × × × × × × × × × × ×
REAL(real_8),
INTENT(out)
:: extent_out(:) × ×
REAL(real_4),
INTENT(out)
:: extent_out(:) × ×
COMPLEX(real_8),
INTENT(out)
:: extent_out(:) × ×
COMPLEX(real_4),
INTENT(out)
:: extent_out(:) × ×
REAL(real_8),
INTENT(out)
:: extent_out(columns,rows) ×
REAL(real_4),
INTENT(out)
:: extent_out(columns,rows) ×
COMPLEX(real_8),
INTENT(out)
:: extent_out(columns,rows) ×
COMPLEX(real_4),
INTENT(out)
:: extent_out(columns,rows) ×
REAL(real_8),
INTENT(in)
:: extent_in(:) × ×
REAL(real_4),
INTENT(in)
:: extent_in(:) × ×
COMPLEX(real_8),
INTENT(in)
:: extent_in(:) × ×
COMPLEX(real_4),
INTENT(in)
:: extent_in(:) × ×
REAL(real_8),
INTENT(in)
:: extent_in(rows,columns) ×
REAL(real_4),
INTENT(in)
:: extent_in(rows,columns) ×
COMPLEX(real_8),
INTENT(in)
:: extent_in(rows,columns) ×
COMPLEX(real_4),
INTENT(in)
:: extent_in(rows,columns) ×
INTENT(inout)
:: dst ×
INTENT(in)
:: src ×
INTEGER,
INTENT(in)
:: row_size × ×
INTEGER,
INTENT(in)
:: col_size × ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb ×
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb ×
INTENT(in),
OPTIONAL
:: scale ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 ×
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb2 ×
INTENT(inout)
:: area ×

Generic procedure dbcsr_data_clear

...

INTENT(inout)
:: area × ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb × ×
INTEGER,
INTENT(in),
OPTIONAL
:: ub × ×
INTENT(in),
OPTIONAL
:: value × ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 × ×
INTEGER,
INTENT(in),
OPTIONAL
:: ub2 × ×
LOGICAL,
INTENT(in)
:: tr ×

Generic procedure dbcsr_data_copy

...

INTENT(inout)
:: dst × × × × ×
INTEGER,
INTENT(in)
:: dst_lb(:) ×
INTEGER,
INTENT(in)
:: dst_sizes(:) ×
INTENT(in)
:: src ×
REAL(real_4),
INTENT(in)
:: src(:) ×
REAL(real_8),
INTENT(in)
:: src(:) ×
COMPLEX(real_4),
INTENT(in)
:: src(:) ×
COMPLEX(real_8),
INTENT(in)
:: src(:) ×
INTEGER,
INTENT(in)
:: src_lb(:) ×
INTEGER,
INTENT(in)
:: src_sizes(:) ×
INTEGER,
INTENT(in)
:: lb × × × ×
INTEGER,
INTENT(in)
:: data_size × × × ×
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb × × × ×

Generic procedure dbcsr_data_set

...

INTENT(inout)
:: dst × × × × ×
INTEGER,
INTENT(in)
:: lb × × × × ×
INTEGER,
INTENT(in)
:: data_size × × × × ×
INTENT(in)
:: src ×
REAL(real_4),
INTENT(in)
:: src(:) ×
REAL(real_8),
INTENT(in)
:: src(:) ×
COMPLEX(real_4),
INTENT(in)
:: src(:) ×
COMPLEX(real_8),
INTENT(in)
:: src(:) ×
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb × × × × ×
INTENT(in),
OPTIONAL
:: scale ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 ×
INTEGER,
INTENT(in),
OPTIONAL
:: data_size2 ×
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb2 ×

PURE SUBROUTINEblock_copy_c(extent_out, extent_in, n, out_fe, in_fe)

Copy a block

Arguments:
COMPLEX(real_4),
INTENT(out)
:: extent_out(*) output data
COMPLEX(real_4),
INTENT(in)
:: extent_in(*) input data
INTEGER,
INTENT(in)
:: n number of elements to copy
INTEGER,
INTENT(in)
:: out_fe first element of output
INTEGER,
INTENT(in)
:: in_fe first element of input

PURE SUBROUTINEblock_copy_d(extent_out, extent_in, n, out_fe, in_fe)

Copy a block

Arguments:
REAL(real_8),
INTENT(out)
:: extent_out(*) output data
REAL(real_8),
INTENT(in)
:: extent_in(*) input data
INTEGER,
INTENT(in)
:: n number of elements to copy
INTEGER,
INTENT(in)
:: out_fe first element of output
INTEGER,
INTENT(in)
:: in_fe first element of input

PURE SUBROUTINEblock_copy_s(extent_out, extent_in, n, out_fe, in_fe)

Copy a block

Arguments:
REAL(real_4),
INTENT(out)
:: extent_out(*) output data
REAL(real_4),
INTENT(in)
:: extent_in(*) input data
INTEGER,
INTENT(in)
:: n number of elements to copy
INTEGER,
INTENT(in)
:: out_fe first element of output
INTEGER,
INTENT(in)
:: in_fe first element of input

PURE SUBROUTINEblock_copy_z(extent_out, extent_in, n, out_fe, in_fe)

Copy a block

Arguments:
COMPLEX(real_8),
INTENT(out)
:: extent_out(*) output data
COMPLEX(real_8),
INTENT(in)
:: extent_in(*) input data
INTEGER,
INTENT(in)
:: n number of elements to copy
INTEGER,
INTENT(in)
:: out_fe first element of output
INTEGER,
INTENT(in)
:: in_fe first element of input

SUBROUTINEdbcsr_block_conjg(dst, row_size, col_size, lb, lb2)

Conjugate a data area.

Arguments:
INTENT(inout)
:: dst ...
INTEGER,
INTENT(in)
:: row_size row size of existing block
INTEGER,
INTENT(in)
:: col_size column size of existing block
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 lower bound of 2nd dimension for target

SUBROUTINEdbcsr_block_copy_aa(dst, src, row_size, col_size, lb, source_lb, scale)

Copy data from one data area to another.

Arguments:
INTENT(inout)
:: dst destination data area
INTENT(in)
:: src source data area
INTEGER,
INTENT(in)
:: row_size row size of existing block
INTEGER,
INTENT(in)
:: col_size column size of existing block
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source
INTENT(in),
OPTIONAL
:: scale scale data

SUBROUTINEdbcsr_block_partial_copy(dst, dst_rs, dst_cs, dst_tr, src, src_rs, src_cs, src_tr, dst_r_lb, dst_c_lb, src_r_lb, src_c_lb, nrow, ncol, dst_offset, src_offset)

Copies a block subset

Arguments:
INTENT(inout)
:: dst target data area
INTEGER,
INTENT(in)
:: dst_rs target block row size (logical)
INTEGER,
INTENT(in)
:: dst_cs target block column size (logical)
LOGICAL
:: dst_tr whether target block is transposed
INTENT(in)
:: src source data area
INTEGER,
INTENT(in)
:: src_rs source block row size (logical)
INTEGER,
INTENT(in)
:: src_cs source block column size (logical)
LOGICAL
:: src_tr whether source block is transposed
INTEGER,
INTENT(in)
:: dst_r_lb first row in target
INTEGER,
INTENT(in)
:: dst_c_lb first column in target
INTEGER,
INTENT(in)
:: src_r_lb first_row in source
INTEGER,
INTENT(in)
:: src_c_lb first column in target
INTEGER,
INTENT(in)
:: nrow number of rows to copy
INTEGER,
INTENT(in)
:: ncol number of columns to copy
INTEGER,
INTENT(in),
OPTIONAL
:: dst_offset offset in target
INTEGER,
INTENT(in),
OPTIONAL
:: src_offset offset in source

SUBROUTINEdbcsr_block_real_neg(dst, row_size, col_size, lb, lb2)

Negates the real part of a block

Arguments:
INTENT(inout)
:: dst ...
INTEGER,
INTENT(in)
:: row_size row size of existing block
INTEGER,
INTENT(in)
:: col_size column size of existing block
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 lower bound of 2nd dimension for target

SUBROUTINEdbcsr_block_scale(dst, scale, row_size, col_size, lb, lb2)

Scale a data area.

Arguments:
INTENT(inout)
:: dst ...
INTENT(in)
:: scale scale data
INTEGER,
INTENT(in)
:: row_size row size of existing block
INTEGER,
INTENT(in)
:: col_size column size of existing block
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 lower bound of 2nd dimension for target

SUBROUTINEdbcsr_block_transpose_aa(dst, src, row_size, col_size, lb, source_lb, scale, lb2, source_lb2)

Copy data from one data area to another.

Arguments:
INTENT(inout)
:: dst destination data area
INTENT(in)
:: src source data area
INTEGER,
INTENT(in)
:: row_size row size of existing block
INTEGER,
INTENT(in)
:: col_size column size of existing block
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source
INTENT(in),
OPTIONAL
:: scale scale data
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 lower bound of 2nd dimension for target
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb2 lower bound of 2nd dimension for source

SUBROUTINEblock_add_anytype(block_a, block_b, len)

Adds two blocks

Arguments:
INTENT(inout)
:: block_a Block to add to
INTENT(in)
:: block_b Block to add to block_a
INTEGER,
INTENT(in),
OPTIONAL
:: len ...

SUBROUTINEblock_add_anytype_bounds(block_a, block_b, lb_a, lb_b, len)

Adds two blocks

Arguments:
INTENT(inout)
:: block_a Block to add to
INTENT(in)
:: block_b Block to add to block_a
INTEGER,
INTENT(in)
:: lb_a ...
INTEGER,
INTENT(in)
:: lb_b ...
INTEGER,
INTENT(in)
:: len ...

PURE SUBROUTINEblock_add_s(block_a, block_b, len)

...

Arguments:
REAL(real_4),
INTENT(inout)
:: block_a(len) ...
REAL(real_4),
INTENT(in)
:: block_b(len) ...
INTEGER,
INTENT(in)
:: len ...

PURE SUBROUTINEblock_add_d(block_a, block_b, len)

...

Arguments:
REAL(real_8),
INTENT(inout)
:: block_a(len) ...
REAL(real_8),
INTENT(in)
:: block_b(len) ...
INTEGER,
INTENT(in)
:: len ...

PURE SUBROUTINEblock_add_c(block_a, block_b, len)

...

Arguments:
COMPLEX(real_4),
INTENT(inout)
:: block_a(len) ...
COMPLEX(real_4),
INTENT(in)
:: block_b(len) ...
INTEGER,
INTENT(in)
:: len ...

PURE SUBROUTINEblock_add_z(block_a, block_b, len)

...

Arguments:
COMPLEX(real_8),
INTENT(inout)
:: block_a(len) ...
COMPLEX(real_8),
INTENT(in)
:: block_b(len) ...
INTEGER,
INTENT(in)
:: len ...

PURE SUBROUTINEblock_transpose_inplace_s(extent, rows, columns)

In-place block transpose.

Arguments:
REAL(real_4),
INTENT(inout)
:: extent(rows*columns) Matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_inplace_d(extent, rows, columns)

In-place block transpose.

Arguments:
REAL(real_8),
INTENT(inout)
:: extent(rows*columns) Matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_inplace_c(extent, rows, columns)

In-place block transpose.

Arguments:
COMPLEX(real_4),
INTENT(inout)
:: extent(rows*columns) Matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_inplace_z(extent, rows, columns)

In-place block transpose.

Arguments:
COMPLEX(real_8),
INTENT(inout)
:: extent(rows*columns) Matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_d(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_8),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
REAL(real_8),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_s(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_4),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
REAL(real_4),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_z(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_8),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
COMPLEX(real_8),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_c(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_4),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
COMPLEX(real_4),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_2d1d_d(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_8),
INTENT(out)
:: extent_out(columns,rows) output matrix in the form of a 2-d array
REAL(real_8),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_2d1d_s(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_4),
INTENT(out)
:: extent_out(columns,rows) output matrix in the form of a 2-d array
REAL(real_4),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_2d1d_z(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_8),
INTENT(out)
:: extent_out(columns,rows) output matrix in the form of a 2-d array
COMPLEX(real_8),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_2d1d_c(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_4),
INTENT(out)
:: extent_out(columns,rows) output matrix in the form of a 2-d array
COMPLEX(real_4),
INTENT(in)
:: extent_in(:) input matrix in the form of a 1-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_1d2d_d(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_8),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
REAL(real_8),
INTENT(in)
:: extent_in(rows,columns) input matrix in the form of a 2-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_1d2d_s(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
REAL(real_4),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
REAL(real_4),
INTENT(in)
:: extent_in(rows,columns) input matrix in the form of a 2-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_1d2d_z(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_8),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
COMPLEX(real_8),
INTENT(in)
:: extent_in(rows,columns) input matrix in the form of a 2-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

PURE SUBROUTINEblock_transpose_copy_1d2d_c(extent_out, extent_in, rows, columns)

Copy and transpose block.

Arguments:
COMPLEX(real_4),
INTENT(out)
:: extent_out(:) output matrix in the form of a 1-d array
COMPLEX(real_4),
INTENT(in)
:: extent_in(rows,columns) input matrix in the form of a 2-d array
INTEGER,
INTENT(in)
:: rows input matrix size
INTEGER,
INTENT(in)
:: columns input matrix size

SUBROUTINEdbcsr_block_transpose_a(area, row_size, col_size)

In-place transpose of encapsulated data

Arguments:
INTENT(inout)
:: area encapsulated data area
INTEGER,
INTENT(in)
:: row_size number of rows in existing block
INTEGER,
INTENT(in)
:: col_size number of columns in existing block

SUBROUTINEdbcsr_data_clear_nt(area, lb, ub, value, lb2, ub2, tr)

Clears a data area, possibly transposed.

Arguments:
INTENT(inout)
:: area ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb ...
INTEGER,
INTENT(in),
OPTIONAL
:: ub ...
INTENT(in),
OPTIONAL
:: value ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 ...
INTEGER,
INTENT(in),
OPTIONAL
:: ub2 ...
LOGICAL,
INTENT(in)
:: tr ...

SUBROUTINEdbcsr_data_clear0(area, lb, ub, value, lb2, ub2)

Clears a data area

Arguments:
INTENT(inout)
:: area area with encapsulated data
INTEGER,
INTENT(in),
OPTIONAL
:: lb lower bound for clearing
INTEGER,
INTENT(in),
OPTIONAL
:: ub lower bound for clearing
INTENT(in),
OPTIONAL
:: value value to use for clearing
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 upper bound for clearing
INTEGER,
INTENT(in),
OPTIONAL
:: ub2 upper bound for clearing

SUBROUTINEdbcsr_data_copy_aa2(dst, dst_lb, dst_sizes, src, src_lb, src_sizes)

Copy data from one data area to another, the most basic form.

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: dst_lb(:) lower bounds for destination
INTEGER,
INTENT(in)
:: dst_sizes(:) sizes for destination
INTENT(in)
:: src source data area
INTEGER,
INTENT(in)
:: src_lb(:) lower bounds for source
INTEGER,
INTENT(in)
:: src_sizes(:) sizes for source

SUBROUTINEdbcsr_data_set_as(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
REAL(real_4),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_ad(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
REAL(real_8),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_ac(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
COMPLEX(real_4),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_az(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
COMPLEX(real_8),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_copy_aa(dst, lb, data_size, src, source_lb, scale, lb2, data_size2, source_lb2)

Copy data from one data area to another.

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
INTENT(in)
:: src source data area
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source
INTENT(in),
OPTIONAL
:: scale scale by this factor
INTEGER,
INTENT(in),
OPTIONAL
:: lb2 2nd dimension lower bound
INTEGER,
INTENT(in),
OPTIONAL
:: data_size2 2nd dimension data size
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb2 2nd dimension lower bound for source

SUBROUTINEdbcsr_data_set_as(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
REAL(real_4),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_ad(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
REAL(real_8),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_ac(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
COMPLEX(real_4),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source

SUBROUTINEdbcsr_data_set_az(dst, lb, data_size, src, source_lb)

Copy data from a double real array to a data area

Arguments:
INTENT(inout)
:: dst destination data area
INTEGER,
INTENT(in)
:: lb lower bound for destination (and source if not given explicity)
INTEGER,
INTENT(in)
:: data_size number of elements to copy
COMPLEX(real_8),
INTENT(in)
:: src(:) source data array
INTEGER,
INTENT(in),
OPTIONAL
:: source_lb lower bound of source