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()
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
Nodes of different colours represent the following:
Graph Key
Type
Type
This Page's Entity
This Page's Entity
Solid arrows point from a derived type to the parent type which it
extends. Dashed arrows point from a derived type to the other
types it contains as a components, with a label listing the name(s) of
said component(s).
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Type-Bound Procedures
private function is_session_open(self)
Arguments
Type
Intent Optional Attributes
Name
class(io_session_base_t),
intent(in)
::
self
Return Value
logical
private function is_session_functional(self)
Arguments
Type
Intent Optional Attributes
Name
class(io_session_base_t),
intent(in)
::
self
Return Value
logical
private subroutine session_base_close(self)
Arguments
Type
Intent Optional Attributes
Name
class(io_session_base_t),
intent(inout)
::
self
private subroutine writer_session_open(self, filename, comm)
Arguments
Type
Intent Optional Attributes
Name
class(writer_session_t ),
intent(inout)
::
self
character(len=*),
intent(in)
::
filename
integer,
intent(in)
::
comm
private subroutine write_data_i8(self, variable_name, value)
Arguments
Type
Intent Optional 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
Intent Optional 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
Intent Optional 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, start_dims, count_dims, shape_dims)
Arguments
Type
Intent Optional 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),
optional
::
start_dims (3)
integer(kind=i8),
intent(in),
optional
::
count_dims (3)
integer(kind=i8),
intent(in),
optional
::
shape_dims (3)
private subroutine session_write_attribute(self, attribute_name, attribute_value)
Arguments
Type
Intent Optional Attributes
Name
class(writer_session_t ),
intent(inout)
::
self
character(len=*),
intent(in)
::
attribute_name
character(len=*),
intent(in)
::
attribute_value