MONC
|
This defines some constants and procedures that are useful to the IO server and clients that call it. By using the contents then the client can guarantee consistency against what the server expects. More...
Data Types | |
type | data_sizing_description_type |
type | definition_description_type |
type | field_description_type |
Functions/Subroutines | |
integer function, dimension(5), public | populate_mpi_type_extents () |
Provides the type extents of the types that we are using in construction of the MPI data type. This is done once for fast look up in the actual construction phase. More... | |
integer function, public | build_mpi_type_definition_description () |
Builds the MPI data type for sending data descriptions to registree MONCs. More... | |
integer function, public | build_mpi_type_field_description () |
Builds the MPI data type for sending field descriptions to registree MONCs. More... | |
integer function, public | build_mpi_type_data_sizing_description () |
Builds the MPI type used for sending to the IO server a description of the data, namely the size of the arrays on this process. More... | |
subroutine, public | append_mpi_datatype (field_start, field_end, field_array_sizes, data_type, type_extents, prev_data_type, type_index, old_types, offsets, block_counts) |
Appends the MPI datatype details to the block counts, old types and offsets arrays. This will lump together multiple concurrent fields with the same type. More... | |
integer function, public | get_mpi_datatype_from_internal_representation (type_code) |
Gets the MPI datatype from out internal representation of the field data type (as in the configuration parse module) More... | |
integer function, public | pack_map_field (buffer, start_offset, map_to_pack) |
Packs a map into the send buffer. More... | |
integer function, public | pack_array_field (buffer, start_offset, int_array, real_array_1d, real_array_2d, real_array_3d, real_array_4d) |
Packs an array field into the sending buffer. More... | |
integer function, public | pack_scalar_field (buffer, start_offset, int_value, real_value, single_real_value, double_real_value, string_value, logical_value) |
Packs the data of a scalar field into a buffer. More... | |
logical function, public | get_data_description_from_name (descriptions, name, field_description) |
Look up the data description that corresponds to a specific field keyed by its name. More... | |
Variables | |
integer, parameter, public | command_tag =9 |
integer, parameter, public | data_tag =10 |
integer, parameter, public | register_command =1 |
integer, parameter, public | deregister_command =3 |
integer, parameter, public | data_command_start =4 |
integer, parameter, public | inter_io_communication =2 |
Field type identifiers. More... | |
integer, parameter, public | scalar_field_type = 1 |
integer, parameter, public | array_field_type =2 |
integer, parameter, public | map_field_type =3 |
Field data type identifiers. More... | |
integer, parameter, public | integer_data_type = 1 |
integer, parameter, public | boolean_data_type =2 |
integer, parameter, public | string_data_type =3 |
integer, parameter, public | float_data_type =4 |
integer, parameter, public | double_data_type =5 |
character(len=string_length), parameter, public | local_sizes_key ="local_sizes" |
character(len=string_length), parameter, public | local_start_points_key ="local_start_points" |
character(len=string_length), parameter, public | local_end_points_key ="local_end_points" |
character(len=string_length), parameter, public | number_q_indicies_key ="num_q_indicies" |
This defines some constants and procedures that are useful to the IO server and clients that call it. By using the contents then the client can guarantee consistency against what the server expects.
subroutine, public io_server_client_mod::append_mpi_datatype | ( | integer, intent(in) | field_start, |
integer, intent(in) | field_end, | ||
integer, intent(in) | field_array_sizes, | ||
integer, intent(in) | data_type, | ||
integer, dimension(5), intent(in) | type_extents, | ||
integer, intent(in) | prev_data_type, | ||
integer, intent(in) | type_index, | ||
integer, dimension(20), intent(inout) | old_types, | ||
integer, dimension(20), intent(inout) | offsets, | ||
integer, dimension(20), intent(inout) | block_counts | ||
) |
Appends the MPI datatype details to the block counts, old types and offsets arrays. This will lump together multiple concurrent fields with the same type.
field_start | Number of field that we are starting at to build |
field_end | Number of field that we are ending at in this build |
field_array_sizes | The extra size that is taken up not just by the data but the fact that some members are arrays (array size) |
data_type | IO server representation of the current field data type |
type_extents | Array of MPI type extents |
prev_data_type | IO server representation of the previous distinct field data type |
type_index | The number in the MPI type structure that we are creating here |
old_types | Array of MPI types that we use for each member in the structure |
offsets | Starting offsets for each MPI type structure element |
block_counts | Number of type blocks for each MPI type structure element |
Definition at line 184 of file ioclient.F90.
integer function, public io_server_client_mod::build_mpi_type_data_sizing_description |
Builds the MPI type used for sending to the IO server a description of the data, namely the size of the arrays on this process.
Definition at line 146 of file ioclient.F90.
integer function, public io_server_client_mod::build_mpi_type_definition_description |
Builds the MPI data type for sending data descriptions to registree MONCs.
Definition at line 75 of file ioclient.F90.
integer function, public io_server_client_mod::build_mpi_type_field_description |
Builds the MPI data type for sending field descriptions to registree MONCs.
Definition at line 107 of file ioclient.F90.
logical function, public io_server_client_mod::get_data_description_from_name | ( | type(data_sizing_description_type), dimension(:), intent(in) | descriptions, |
character(len=*), intent(in) | name, | ||
type(data_sizing_description_type), intent(out), optional | field_description | ||
) |
Look up the data description that corresponds to a specific field keyed by its name.
descriptions | The data descriptions |
name | The field name to look up |
field_description | The resulting field description if the field is found |
Definition at line 354 of file ioclient.F90.
integer function, public io_server_client_mod::get_mpi_datatype_from_internal_representation | ( | integer, intent(in) | type_code | ) |
Gets the MPI datatype from out internal representation of the field data type (as in the configuration parse module)
Our | internal type code representation of the data type |
Definition at line 202 of file ioclient.F90.
integer function, public io_server_client_mod::pack_array_field | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(in) | start_offset, | ||
integer, dimension(:), intent(in), optional | int_array, | ||
real(kind=default_precision), dimension(:), intent(in), optional | real_array_1d, | ||
real(kind=default_precision), dimension(:,:), intent(in), optional | real_array_2d, | ||
real(kind=default_precision), dimension(:,:,:), intent(in), optional | real_array_3d, | ||
real(kind=default_precision), dimension(:,:,:,:), intent(in), optional | real_array_4d | ||
) |
Packs an array field into the sending buffer.
buffer | The buffer to pack the field into |
start_offset | The starting offset to write into the buffer |
int_value | (Optional) integer array values to pack |
real_value | (Optional) default precision real array values to pack |
Definition at line 272 of file ioclient.F90.
integer function, public io_server_client_mod::pack_map_field | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(in) | start_offset, | ||
type(hashmap_type) | map_to_pack | ||
) |
Packs a map into the send buffer.
buffer | The buffer to pack the field into |
start_offset | The starting offset to write into the buffer |
map_to_pack | The map to pack into the buffer |
Definition at line 223 of file ioclient.F90.
integer function, public io_server_client_mod::pack_scalar_field | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(in) | start_offset, | ||
integer, intent(in), optional | int_value, | ||
real(kind=default_precision), intent(in), optional | real_value, | ||
real(kind=single_precision), intent(in), optional | single_real_value, | ||
real(kind=double_precision), intent(in), optional | double_real_value, | ||
character(len=*), intent(in), optional | string_value, | ||
logical, intent(in), optional | logical_value | ||
) |
Packs the data of a scalar field into a buffer.
buffer | The buffer to pack the field into |
start_offset | The starting offset to write into the buffer |
int_value | (Optional) integer scalar value to pack |
real_value | (Optional) default precision real scalar value to pack |
single_real_value | (Optional) single precision real scalar value to pack |
double_real_value | (Optional) double precision real scalar value to pack |
Definition at line 310 of file ioclient.F90.
integer function, dimension(5), public io_server_client_mod::populate_mpi_type_extents |
Provides the type extents of the types that we are using in construction of the MPI data type. This is done once for fast look up in the actual construction phase.
Definition at line 59 of file ioclient.F90.
integer, parameter, public io_server_client_mod::array_field_type =2 |
Definition at line 38 of file ioclient.F90.
integer, parameter, public io_server_client_mod::boolean_data_type =2 |
Definition at line 40 of file ioclient.F90.
integer, parameter, public io_server_client_mod::command_tag =9 |
Definition at line 34 of file ioclient.F90.
integer, parameter, public io_server_client_mod::data_command_start =4 |
Definition at line 34 of file ioclient.F90.
integer, parameter, public io_server_client_mod::data_tag =10 |
Definition at line 34 of file ioclient.F90.
integer, parameter, public io_server_client_mod::deregister_command =3 |
Definition at line 34 of file ioclient.F90.
integer, parameter, public io_server_client_mod::double_data_type =5 |
Definition at line 40 of file ioclient.F90.
integer, parameter, public io_server_client_mod::float_data_type =4 |
Definition at line 40 of file ioclient.F90.
integer, parameter, public io_server_client_mod::integer_data_type = 1 |
Definition at line 40 of file ioclient.F90.
integer, parameter, public io_server_client_mod::inter_io_communication =2 |
Field type identifiers.
Definition at line 34 of file ioclient.F90.
character(len=string_length), parameter, public io_server_client_mod::local_end_points_key ="local_end_points" |
Definition at line 43 of file ioclient.F90.
character(len=string_length), parameter, public io_server_client_mod::local_sizes_key ="local_sizes" |
Definition at line 43 of file ioclient.F90.
character(len=string_length), parameter, public io_server_client_mod::local_start_points_key ="local_start_points" |
Definition at line 43 of file ioclient.F90.
integer, parameter, public io_server_client_mod::map_field_type =3 |
Field data type identifiers.
Definition at line 38 of file ioclient.F90.
character(len=string_length), parameter, public io_server_client_mod::number_q_indicies_key ="num_q_indicies" |
Definition at line 43 of file ioclient.F90.
integer, parameter, public io_server_client_mod::register_command =1 |
Definition at line 34 of file ioclient.F90.
integer, parameter, public io_server_client_mod::scalar_field_type = 1 |
Definition at line 38 of file ioclient.F90.
integer, parameter, public io_server_client_mod::string_data_type =3 |
Definition at line 40 of file ioclient.F90.