Documentation for module qs_fb_buffer_types

...

source: qs_fb_buffer_types.F
Loading...

public Types:

fb_buffer_d_obj
object/pointer wrapper for fb_buffer object

Generic procedures:

fb_buffer_add
fb_buffer_create
fb_buffer_get
fb_buffer_has_data
fb_buffer_nullify
fb_buffer_release
fb_buffer_replace

public Types:

TYPE :: fb_buffer_d_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data


Generic procedure fb_buffer_add

add some data into the buffer

INTENT(inout)
:: buffer ×
INTENT(inout)
:: buffer ×
INTEGER,
INTENT(in)
:: data_1d(:) ×
REAL(dp),
INTENT(in)
:: data_1d(:) ×

Generic procedure fb_buffer_create

creates a fb_buffer object

INTENT(inout)
:: buffer ×
INTENT(inout)
:: buffer ×
INTEGER,
INTENT(in),
OPTIONAL
:: max_size × ×
INTEGER,
INTENT(in),
OPTIONAL
:: nslices × ×
INTEGER,
INTENT(in),
OPTIONAL
:: data_1d(:) ×
REAL(dp),
INTENT(in),
OPTIONAL
:: data_1d(:) ×
INTEGER,
INTENT(in),
OPTIONAL
:: sizes(:) × ×

Generic procedure fb_buffer_get

get data from the fb_buffer object

INTENT(in)
:: buffer ×
INTENT(in)
:: buffer ×
INTEGER,
INTENT(in),
OPTIONAL
:: i_slice × ×
INTEGER,
INTENT(out),
OPTIONAL
:: n × ×
INTEGER,
INTENT(out),
OPTIONAL
:: data_size × ×
INTEGER,
INTENT(out),
OPTIONAL
:: sizes(:) × ×
INTEGER,
INTENT(out),
OPTIONAL
:: disps(:) × ×
INTEGER,
OPTIONAL, POINTER
:: data_1d(:) ×
REAL(dp),
OPTIONAL, POINTER
:: data_1d(:) ×
INTEGER,
OPTIONAL, POINTER
:: data_2d(:,:) ×
REAL(dp),
OPTIONAL, POINTER
:: data_2d(:,:) ×
INTEGER,
INTENT(in),
OPTIONAL
:: data_2d_ld × ×

Generic procedure fb_buffer_has_data

check if an object as associated data

INTENT(in)
:: buffer ×
INTENT(in)
:: buffer ×

Generic procedure fb_buffer_nullify

nullify the given fb_buffer

INTENT(inout)
:: buffer ×
INTENT(inout)
:: buffer ×

Generic procedure fb_buffer_release

releases the given fb_buffer

INTENT(inout)
:: buffer ×
INTENT(inout)
:: buffer ×

Generic procedure fb_buffer_replace

replace a slice of the buffer, the replace data size must be identical to the original slice size

INTENT(inout)
:: buffer ×
INTENT(inout)
:: buffer ×
INTEGER,
INTENT(in)
:: i_slice × ×
INTEGER,
INTENT(in)
:: data_1d(:) ×
REAL(dp),
INTENT(in)
:: data_1d(:) ×

SUBROUTINEfb_buffer_i_add(buffer, data_1d)

add some data into the buffer

Arguments:
INTENT(inout)
:: buffer fb_buffer object
INTEGER,
INTENT(in)
:: data_1d(:) data to be copied into the object

SUBROUTINEfb_buffer_d_add(buffer, data_1d)

add some data into the buffer

Arguments:
INTENT(inout)
:: buffer fb_buffer object
REAL(dp),
INTENT(in)
:: data_1d(:) data to be copied into the object

SUBROUTINEfb_buffer_i_create(buffer, max_size, nslices, data_1d, sizes)

creates a fb_buffer object

Arguments:
INTENT(inout)
:: buffer fb_buffer object
INTEGER,
INTENT(in),
OPTIONAL
:: max_size requested total size of the data array
INTEGER,
INTENT(in),
OPTIONAL
:: nslices total number of slices for the data
INTEGER,
INTENT(in),
OPTIONAL
:: data_1d(:) the data to be copied to the buffer
INTEGER,
INTENT(in),
OPTIONAL
:: sizes(:) the size of the slices in the buffer

SUBROUTINEfb_buffer_d_create(buffer, max_size, nslices, data_1d, sizes)

creates a fb_buffer object

Arguments:
INTENT(inout)
:: buffer fb_buffer object
INTEGER,
INTENT(in),
OPTIONAL
:: max_size requested total size of the data array
INTEGER,
INTENT(in),
OPTIONAL
:: nslices total number of slices for the data
REAL(dp),
INTENT(in),
OPTIONAL
:: data_1d(:) the data to be copied to the buffer
INTEGER,
INTENT(in),
OPTIONAL
:: sizes(:) the size of the slices in the buffer

SUBROUTINEfb_buffer_i_get(buffer, i_slice, n, data_size, sizes, disps, data_1d, data_2d, data_2d_ld)

get data from the fb_buffer object

Arguments:
INTENT(in)
:: buffer fb_buffer object
INTEGER,
INTENT(in),
OPTIONAL
:: i_slice see data_1d, data_2d
INTEGER,
INTENT(out),
OPTIONAL
:: n outputs number of slices in data array
INTEGER,
INTENT(out),
OPTIONAL
:: data_size outputs the total size of stored data
INTEGER,
INTENT(out),
OPTIONAL
:: sizes(:) outputs sizes of the slices in data array
INTEGER,
INTENT(out),
OPTIONAL
:: disps(:) outputs displacements in the data array for each slice
INTEGER,
OPTIONAL, POINTER
:: data_1d(:) if i_slice is present: returns pointer to the section of data array corresponding to i_slice-th slice else: return pointer to the entire non-empty part of the data array
INTEGER,
OPTIONAL, POINTER
:: data_2d(:,:) similar to data_1d, but with the 1D data array reshaped to 2D works only with i_slice present
INTEGER,
INTENT(in),
OPTIONAL
:: data_2d_ld leading dimension for data_2d for slice i_slice

SUBROUTINEfb_buffer_d_get(buffer, i_slice, n, data_size, sizes, disps, data_1d, data_2d, data_2d_ld)

get data from the fb_buffer object

Arguments:
INTENT(in)
:: buffer fb_buffer object
INTEGER,
INTENT(in),
OPTIONAL
:: i_slice see data_1d, data_2d
INTEGER,
INTENT(out),
OPTIONAL
:: n outputs number of slices in data array
INTEGER,
INTENT(out),
OPTIONAL
:: data_size outputs the total size of stored data
INTEGER,
INTENT(out),
OPTIONAL
:: sizes(:) outputs sizes of the slices in data array
INTEGER,
INTENT(out),
OPTIONAL
:: disps(:) outputs displacements in the data array for each slice
REAL(dp),
OPTIONAL, POINTER
:: data_1d(:) if i_slice is present: returns pointer to the section of data array corresponding to i_slice-th slice else: return pointer to the entire non-empty part of the data array
REAL(dp),
OPTIONAL, POINTER
:: data_2d(:,:) similar to data_1d, but with the 1D data array reshaped to 2D works only with i_slice present
INTEGER,
INTENT(in),
OPTIONAL
:: data_2d_ld leading dimension for data_2d for slice i_slice

PURE FUNCTIONfb_buffer_i_has_data(buffer)

check if an object as associated data

Return Value ::
LOGICAL
.TRUE. if buffer has associated data
Arguments:
INTENT(in)
:: buffer fb_buffer object

PURE FUNCTIONfb_buffer_d_has_data(buffer)

check if an object as associated data

Return Value ::
LOGICAL
.TRUE. if buffer has associated data
Arguments:
INTENT(in)
:: buffer fb_buffer object

SUBROUTINEfb_buffer_i_nullify(buffer)

nullify the given fb_buffer

Arguments:
INTENT(inout)
:: buffer the fb_bffer object

SUBROUTINEfb_buffer_d_nullify(buffer)

nullify the given fb_buffer

Arguments:
INTENT(inout)
:: buffer the fb_bffer object

SUBROUTINEfb_buffer_i_release(buffer)

releases the given fb_buffer

Arguments:
INTENT(inout)
:: buffer the fb_bffer object

SUBROUTINEfb_buffer_d_release(buffer)

releases the given fb_buffer

Arguments:
INTENT(inout)
:: buffer the fb_bffer object

SUBROUTINEfb_buffer_i_replace(buffer, i_slice, data_1d)

replace a slice of the buffer, the replace data size must be identical to the original slice size

Arguments:
INTENT(inout)
:: buffer fb_buffer object
INTEGER,
INTENT(in)
:: i_slice the slice index in the buffer
INTEGER,
INTENT(in)
:: data_1d(:) the data to replace the slice

SUBROUTINEfb_buffer_d_replace(buffer, i_slice, data_1d)

replace a slice of the buffer, the replace data size must be identical to the original slice size

Arguments:
INTENT(inout)
:: buffer fb_buffer object
INTEGER,
INTENT(in)
:: i_slice the slice index in the buffer
REAL(dp),
INTENT(in)
:: data_1d(:) the data to replace the slice

private Parameters/Types:

private Types:

TYPE :: fb_buffer_d_data

data for the fb_buffer object (real, double)


INTEGER
:: id_nr unique id of this object
INTEGER
:: ref_count reference counter of this object
INTEGER
:: n number of data slices in the buffer
INTEGER,
DIMENSION(:), POINTER :: disps displacement in data array of each slice, it contains one more element at the end recording the total size of the current data, which is the same as the displacement for the new data to be added
REAL(dp),
DIMENSION(:), POINTER :: data_1d where all of the slices are stored

TYPE :: fb_buffer_i_data

data for the fb_buffer object (integer)


INTEGER
:: id_nr unique id of this object
INTEGER
:: ref_count reference counter of this object
INTEGER
:: n number of data slices in the buffer
INTEGER,
DIMENSION(:), POINTER :: disps displacement in data array of each slice, it contains one more element at the end recording the total size of the current data, which is the same as the displacement for the new data to be added
INTEGER,
DIMENSION(:), POINTER :: data_1d where all of the slices are stored

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data

TYPE :: fb_buffer_i_obj

object/pointer wrapper for fb_buffer object


POINTER, PRIVATE :: obj => NULL() pointer to fb_buffer data