m_io_base Module

I/O architecture.

the I/O system. It establishes a polymorphic layer that allows the high-level user session to interact with various I/O backends through a consistent interface.

The architecture is designed in distinct layers: User code - interacts only with the Session layer

Session layer (m_io_session) - manages all I/O complexity (file handles, state, etc.) - instantiates the I/O backend selected at compile-time - provides reader_session_t and writer_session_t for users

Backend layer (m_io_backend) - concrete implementation of an I/O backed (e.g., ADIOS2) - extends the abstract base types defined in this module

Base layer (m_io_base, this module) - provides abstract reader_base_t and writer_base_t types - enforces a consistent interface for all backends

The sole public interface for I/O is the high-level session API provided in m_io_session.


Uses

  • module~~m_io_base~~UsesGraph module~m_io_base m_io_base module~m_common m_common module~m_io_base->module~m_common mpi mpi module~m_common->mpi

Used by

  • module~~m_io_base~~UsedByGraph module~m_io_base m_io_base module~m_io_backend m_io_backend module~m_io_backend->module~m_io_base module~m_io_backend~2 m_io_backend module~m_io_backend~2->module~m_io_base module~m_io_field_utils m_io_field_utils module~m_io_field_utils->module~m_io_base module~m_solver m_solver module~m_io_field_utils->module~m_solver module~m_io_session m_io_session module~m_io_session->module~m_io_base module~m_io_session->module~m_io_backend module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_io_field_utils module~m_checkpoint_manager->module~m_io_session module~m_checkpoint_manager->module~m_solver module~m_ibm m_ibm module~m_ibm->module~m_io_session module~m_snapshot_manager m_snapshot_manager module~m_snapshot_manager->module~m_io_field_utils module~m_snapshot_manager->module~m_io_session module~m_snapshot_manager->module~m_solver module~m_io_manager m_io_manager module~m_io_manager->module~m_checkpoint_manager module~m_io_manager->module~m_snapshot_manager module~m_io_manager->module~m_solver module~m_solver->module~m_ibm module~m_base_case m_base_case module~m_base_case->module~m_io_manager module~m_base_case->module~m_solver module~m_case_channel m_case_channel module~m_case_channel->module~m_solver module~m_case_channel->module~m_base_case module~m_case_generic m_case_generic module~m_case_generic->module~m_solver module~m_case_generic->module~m_base_case module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_solver module~m_case_tgv->module~m_base_case program~xcompact xcompact program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: io_mode_read = 1
integer, public, parameter :: io_mode_write = 2

Derived Types

type, public ::  io_file_t

Base file handle for I/O operations

Type-Bound Procedures

procedure, public :: close => base_close
procedure, public :: begin_step => base_begin_step
procedure, public :: end_step => base_end_step
procedure, public :: is_file_functional => base_is_file_functional

type, public ::  io_reader_t

Base I/O reader type for polymorphic usage

Type-Bound Procedures

procedure, public :: init => base_reader_init
procedure, public :: open => base_reader_open
procedure, public :: finalise => base_reader_finalise
generic, public :: read_data => read_data_i8, read_data_integer, read_data_real, read_data_array_3d
procedure, public :: read_data_i8
procedure, public :: read_data_integer
procedure, public :: read_data_real
procedure, public :: read_data_array_3d

type, public ::  io_writer_t

Base I/O writer type for polymorphic usage

Type-Bound Procedures

procedure, public :: init => base_writer_init
procedure, public :: open => base_writer_open
procedure, public :: finalise => base_writer_finalise
generic, public :: write_data => write_data_i8, write_data_integer, write_data_real, write_data_array_3d
procedure, public :: write_data_i8
procedure, public :: write_data_integer
procedure, public :: write_data_real
procedure, public :: write_data_array_3d
generic, public :: write_attribute => write_attribute_string, write_attribute_array_1d_real
procedure, public :: write_attribute_string
procedure, public :: write_attribute_array_1d_real