operations
types that handle the low-level tasks required for writing field data Its primary functionalities include: - Data sub-sampling (striding) - applying a stride to data to reduce the size of the output files - Parallel I/O calculations - determining correct global shapes, local starts, and counts for data distributed across multiple MPI ranks - Data management - handling the setup, cleanup, and buffering of field data in preparation for asynchronous I/O operations
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=32), | public | :: | field_name | ||||
| real(kind=dp), | public, | dimension(:, :, :), allocatable | :: | buffer |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(field_t), | public, | pointer | :: | ptr | => | null() |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in), | dimension(:, :, :) | :: | input_data | ||
| integer, | intent(in), | dimension(3) | :: | dims | ||
| integer, | intent(in), | dimension(3) | :: | stride | ||
| integer, | intent(out), | dimension(3) | :: | output_dims_out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in), | dimension(:, :, :) | :: | input_data | ||
| integer, | intent(in), | dimension(3) | :: | dims | ||
| integer, | intent(in), | dimension(3) | :: | stride | ||
| real(kind=dp), | intent(inout), | dimension(:, :, :), allocatable | :: | out_buffer | ||
| integer, | intent(out), | dimension(3) | :: | output_dims_out |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i8), | intent(in), | dimension(3) | :: | shape_dims | ||
| integer(kind=i8), | intent(in), | dimension(3) | :: | start_dims | ||
| integer(kind=i8), | intent(in), | dimension(3) | :: | count_dims | ||
| integer, | intent(in), | dimension(3) | :: | stride_factors | ||
| integer(kind=i8), | intent(out), | dimension(3) | :: | output_shape | ||
| integer(kind=i8), | intent(out), | dimension(3) | :: | output_start | ||
| integer(kind=i8), | intent(out), | dimension(3) | :: | output_count | ||
| integer, | intent(out), | dimension(3) | :: | output_dims_local | ||
| integer(kind=i8), | intent(inout), | optional, | dimension(3) | :: | last_shape_dims | |
| integer, | intent(inout), | optional, | dimension(3) | :: | last_stride_factors | |
| integer(kind=i8), | intent(inout), | optional, | dimension(3) | :: | last_output_shape |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t), | intent(in) | :: | solver | |||
| class(io_writer_t), | intent(inout) | :: | writer | |||
| class(io_file_t), | intent(inout) | :: | file | |||
| integer(kind=i8), | intent(in), | dimension(3) | :: | shape_dims | ||
| integer(kind=i8), | intent(in), | dimension(3) | :: | start_dims | ||
| integer(kind=i8), | intent(in), | dimension(3) | :: | count_dims | ||
| integer, | intent(in) | :: | data_loc | |||
| real(kind=dp), | intent(inout), | dimension(:, :, :), allocatable | :: | coords_x | ||
| real(kind=dp), | intent(inout), | dimension(:, :, :), allocatable | :: | coords_y | ||
| real(kind=dp), | intent(inout), | dimension(:, :, :), allocatable | :: | coords_z |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t), | intent(in) | :: | solver | |||
| character(len=*), | intent(in), | dimension(:) | :: | field_names | ||
| type(field_ptr_t), | intent(out), | allocatable | :: | field_ptrs(:) | ||
| type(field_ptr_t), | intent(out), | allocatable | :: | host_fields(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t), | intent(in) | :: | solver | |||
| type(field_ptr_t), | intent(inout), | allocatable | :: | field_ptrs(:) | ||
| type(field_ptr_t), | intent(inout), | allocatable | :: | host_fields(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solver_t), | intent(in) | :: | solver | |||
| integer, | intent(in), | dimension(3) | :: | stride_factors | ||
| character(len=*), | intent(in), | dimension(:) | :: | field_names | ||
| integer, | intent(in) | :: | data_loc | |||
| type(field_buffer_map_t), | intent(inout), | allocatable | :: | field_buffers(:) | ||
| integer(kind=i8), | intent(inout), | dimension(3) | :: | last_shape_dims | ||
| integer, | intent(inout), | dimension(3) | :: | last_stride_factors | ||
| integer(kind=i8), | intent(inout), | dimension(3) | :: | last_output_shape |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | field_name | |||
| class(field_t), | pointer | :: | host_field | |||
| class(solver_t), | intent(in) | :: | solver | |||
| integer, | intent(in), | dimension(3) | :: | stride_factors | ||
| integer, | intent(in) | :: | data_loc | |||
| type(field_buffer_map_t), | intent(inout) | :: | field_buffers(:) | |||
| integer(kind=i8), | intent(inout), | dimension(3) | :: | last_shape_dims | ||
| integer, | intent(inout), | dimension(3) | :: | last_stride_factors | ||
| integer(kind=i8), | intent(inout), | dimension(3) | :: | last_output_shape |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(field_buffer_map_t), | intent(inout), | allocatable | :: | field_buffers(:) |