reader_session_t Derived Type

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.

Usage example: type(reader_session_t) :: reader_session call reader_session%open("checkpoint.bp", MPI_COMM_WORLD) call reader_session%read_data("timestep", timestep) call reader_session%read_data("velocity_u", u_field, start_dims, count_dims) call reader_session%close()


Inherits

type~~reader_session_t~~InheritsGraph type~reader_session_t reader_session_t type~io_reader_t io_reader_t type~reader_session_t->type~io_reader_t reader type~io_session_base_t io_session_base_t type~reader_session_t->type~io_session_base_t type~io_file_t io_file_t type~io_session_base_t->type~io_file_t file

Finalization Procedures

final :: reader_session_finaliser

  • private subroutine reader_session_finaliser(self)

    Finalisation for reader_session_t Called automatically when a reader_session_t goes out of scope Ensures proper cleanup even if user forgets to call close

    Arguments

    Type IntentOptional Attributes Name
    type(reader_session_t) :: self

Type-Bound Procedures

procedure, public :: is_session_open

  • private function is_session_open(self)

    Arguments

    Type IntentOptional Attributes Name
    class(io_session_base_t), intent(in) :: self

    Return Value logical

procedure, public :: is_session_functional

  • private function is_session_functional(self)

    Arguments

    Type IntentOptional Attributes Name
    class(io_session_base_t), intent(in) :: self

    Return Value logical

procedure, public :: close => session_base_close

  • private subroutine session_base_close(self)

    Arguments

    Type IntentOptional Attributes Name
    class(io_session_base_t), intent(inout) :: self

procedure, public :: open => reader_session_open

  • private subroutine reader_session_open(self, filename, comm)

    Arguments

    Type IntentOptional Attributes Name
    class(reader_session_t), intent(inout) :: self
    character(len=*), intent(in) :: filename
    integer, intent(in) :: comm

generic, public :: read_data => read_data_i8, read_data_integer, read_data_real, read_data_array_3d

  • private subroutine read_data_i8(self, variable_name, value)

    Arguments

    Type IntentOptional Attributes Name
    class(reader_session_t), intent(inout) :: self
    character(len=*), intent(in) :: variable_name
    integer(kind=i8), intent(out) :: value
  • private subroutine read_data_integer(self, variable_name, value)

    Arguments

    Type IntentOptional Attributes Name
    class(reader_session_t), intent(inout) :: self
    character(len=*), intent(in) :: variable_name
    integer, intent(out) :: value
  • private subroutine read_data_real(self, variable_name, value)

    Arguments

    Type IntentOptional Attributes Name
    class(reader_session_t), intent(inout) :: self
    character(len=*), intent(in) :: variable_name
    real(kind=dp), intent(out) :: value
  • private subroutine read_data_array_3d(self, variable_name, array, start_dims, count_dims, shape_dims)

    Arguments

    Type IntentOptional Attributes Name
    class(reader_session_t), intent(inout) :: self
    character(len=*), intent(in) :: variable_name
    real(kind=dp), intent(inout) :: array(:,:,:)
    integer(kind=i8), intent(in), optional :: start_dims(3)
    integer(kind=i8), intent(in), optional :: count_dims(3)
    integer(kind=i8), intent(in), optional :: shape_dims(3)