m_io_session Module

operations

It abstracts away all backend details and provides a type-safe interface for all I/O tasks.

Key features: - Type-safe sessions: specialised reader_session_t and writer_session_t types for reading and writing operations, respectively. - Automatic backend selection: based on compile-time options - Resource cleanup: memory is automatically freed when sessions go out of scope (using final subroutines). - Simplified workflow - user only needs to manage a simple open -> read/write -> close workflow, with no need for manual file handle management or explicit cleanup calls.

@example A typical usage pattern for reading data and writing data:

@code{.f90} use m_io_session, only: writer_session_t, reader_session_t

implicit none

real, dimension(:,:,:), allocatable :: temp_field type(writer_session_t) :: writer type(reader_session_t) :: reader

! For writing data call writer%open("output.bp") call writer%write_data("temperature", temp_field) call writer%close() ! Note: writer is automatically cleaned up when it goes out of scope

! For reading data call reader%open("input.bp") call reader%read_data("temperature", temp_field) call reader%close() ! Note: reader is automatically cleaned up when it goes out of scope @endcode

modules like m_io_base and m_io_backend are internal components and should never be used directly in user code. Public session types for user interaction


Uses

  • module~~m_io_session~~UsesGraph module~m_io_session m_io_session module~m_common m_common module~m_io_session->module~m_common module~m_io_backend m_io_backend module~m_io_session->module~m_io_backend module~m_io_base m_io_base module~m_io_session->module~m_io_base mpi mpi module~m_common->mpi module~m_io_backend->module~m_common module~m_io_backend->module~m_io_base adios2 adios2 module~m_io_backend->adios2 module~m_io_backend->mpi module~m_io_base->module~m_common

Used by

  • module~~m_io_session~~UsedByGraph module~m_io_session m_io_session module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_io_session module~m_solver m_solver module~m_checkpoint_manager->module~m_solver module~m_io_field_utils m_io_field_utils module~m_checkpoint_manager->module~m_io_field_utils 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_session module~m_snapshot_manager->module~m_solver module~m_snapshot_manager->module~m_io_field_utils 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 module~m_io_field_utils->module~m_solver 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

Derived Types

type, public, extends(../../../io_session_base_t) ::  reader_session_t

PRIMARY TYPE FOR READING DATA - Use this for all file reading operations This is the only interface users should use for reading data. Provides type-safe reading operations with automatic backend selection.

Read more…

Finalizations Procedures

final :: reader_session_finaliser

Type-Bound Procedures

procedure, public :: is_session_open
procedure, public :: is_session_functional
procedure, public :: close => session_base_close
procedure, public :: open => reader_session_open
generic, public :: read_data => read_data_i8, read_data_integer, read_data_real, read_data_array_3d

type, public, extends(../../../io_session_base_t) ::  writer_session_t

PRIMARY TYPE FOR WRITING DATA - Use this for all file writing operations This is the only interface users should use for writing data. Provides type-safe writing operations with automatic backend selection.

Read more…

Finalizations Procedures

final :: writer_session_finaliser

Type-Bound Procedures

procedure, public :: is_session_open
procedure, public :: is_session_functional
procedure, public :: close => session_base_close
procedure, public :: open => writer_session_open
generic, public :: write_data => write_data_i8, write_data_integer, write_data_real, write_data_array_3d
procedure, public :: write_attribute => session_write_attribute