m_io_backend Module

(ADaptive Input Output System v2) library. It acts as a translation layer converting generic I/O calls from the session interface into specific calls to the ADIOS2 API.

The adios2_reader_t and adios2_writer_t types defined here extend the abstract base types from m_io_base and implement required procedures

This backend leverages several key features of the underlying ADIOS2 library - engine abstraction - the same API can be used for different transport methods (e.g. BP4, BP5, HDF5) - Asynchronous I/O - by default ADIOS2 uses a deferred transport mode which can improve performance by overlapping computation and I/O - MPI integration - it is designed for large-scale paralle I/O and integrates with MPI, though serial operation is also supported

All user interaction must go through m_io_session.


Uses

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

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: IO_BACKEND_DUMMY = 0
integer, public, parameter :: IO_BACKEND_ADIOS2 = 1

Functions

public function get_default_backend() result(backend)

Arguments

None

Return Value integer


Subroutines

public subroutine allocate_io_reader(reader)

Arguments

Type IntentOptional Attributes Name
class(io_reader_t), intent(out), allocatable :: reader

public subroutine allocate_io_writer(writer)

Arguments

Type IntentOptional Attributes Name
class(io_writer_t), intent(out), allocatable :: writer