writer_session_t Derived Type

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.

Usage example: type(writer_session_t) :: writer_session call writer_session%open("output.bp", MPI_COMM_WORLD) call writer_session%write_data("timestep", current_step) call writer_session%write_data("pressure", p_field, start_dims, count_dims) call writer_session%close() call writer_session%write_attribute("ParaView", "vtk_xml_content") call writer_session%close()


Inherits

type~~writer_session_t~~InheritsGraph type~writer_session_t writer_session_t type~io_session_base_t io_session_base_t type~writer_session_t->type~io_session_base_t type~io_writer_t io_writer_t type~writer_session_t->type~io_writer_t writer type~io_file_t io_file_t type~io_session_base_t->type~io_file_t file

Inherited by

type~~writer_session_t~~InheritedByGraph type~writer_session_t writer_session_t type~snapshot_manager_t snapshot_manager_t type~snapshot_manager_t->type~writer_session_t snapshot_writer type~io_manager_t io_manager_t type~io_manager_t->type~snapshot_manager_t snapshot_mgr type~base_case_t base_case_t type~base_case_t->type~io_manager_t checkpoint_mgr type~case_channel_t case_channel_t type~case_channel_t->type~base_case_t type~case_generic_t case_generic_t type~case_generic_t->type~base_case_t type~case_tgv_t case_tgv_t type~case_tgv_t->type~base_case_t

Finalization Procedures

final :: writer_session_finaliser

  • private subroutine writer_session_finaliser(self)

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

    Arguments

    Type IntentOptional Attributes Name
    type(writer_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 => writer_session_open

  • private subroutine writer_session_open(self, filename, comm)

    Arguments

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

procedure, public :: begin_step => writer_session_begin_step

  • private subroutine writer_session_begin_step(self)

    Begin a new timestep for writing (used for time-series in single file)

    Arguments

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

procedure, public :: end_step => writer_session_end_step

  • private subroutine writer_session_end_step(self)

    End the current timestep for writing

    Arguments

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

generic, public :: write_data => write_data_i8, write_data_integer, write_data_real, write_data_array_3d

  • private subroutine write_data_i8(self, variable_name, value)

    Arguments

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

    Arguments

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

    Arguments

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

    Arguments

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

procedure, public :: write_attribute => session_write_attribute

  • private subroutine session_write_attribute(self, attribute_name, attribute_value)

    Arguments

    Type IntentOptional Attributes Name
    class(writer_session_t), intent(inout) :: self
    character(len=*), intent(in) :: attribute_name
    character(len=*), intent(in) :: attribute_value