MONC
Data Types | Modules | Functions/Subroutines | Variables
io_state_writer.F90 File Reference

Go to the source code of this file.

Data Types

interface  io_server_state_writer_mod::nc_def_dim
 ISO C binding interface for NetCDF dimension definition, needed to support 64 bit lengths. More...
 
interface  io_server_state_writer_mod::nc_put_vars_text
 ISO C binding interface for NetCDF put variable text, needed to support 64 bit starts, counts and strides. More...
 
interface  io_server_state_writer_mod::nc_put_var1_long
 ISO C binding interface for NetCDF put long scalar, needed to support putting longs into file. More...
 
interface  io_server_state_writer_mod::nc_def_var
 ISO C binding interface for NetCDF define variable, needed to support defining a long scalar variable. More...
 
interface  io_server_state_writer_mod::writer_field_manager_prepare_to_serialise_state
 
interface  io_server_state_writer_mod::writer_field_manager_serialise_state
 
interface  io_server_state_writer_mod::write_field_manager_determine_if_up_to_date
 

Modules

module  io_server_state_writer_mod
 The IO server state module which will write out the current state of the IO server to a NetCDF file.
 

Functions/Subroutines

subroutine, public io_server_state_writer_mod::set_serialise_write_field_manager_state (serialise_writer_field_manager_state_arg, prepare_to_serialise_writer_field_manager_state_arg, is_write_field_manager_up_to_date_arg)
 Sets the procedure to call for serialises the field manager state, this is handled in this manner due to the ordering dependencies between these modules. More...
 
logical function, public io_server_state_writer_mod::is_io_server_state_writer_ready (timestep)
 Determines whether the IO server state writer is ready (i.e. state is at a specific level for the timestep) The timestep to check the IO server is up to date with. More...
 
subroutine io_server_state_writer_mod::prepare_io_server_state_storage (io_configuration, writer_entries, time_points)
 Will determine the size of the package for different facets of the IO server state and kick off non-blocking collective calls to aggregate the sizes on each IO server process which is needed for the NetCDF dimension sizing and location in this. Note that during this certain locks are issued to ensure sizes don't change between this and physical packaging. More...
 
integer(kind=8) function io_server_state_writer_mod::prepare_to_serialise_writer_entries_time_points (time_points)
 Prepares to serialise the writer entry time points. More...
 
subroutine io_server_state_writer_mod::serialise_writer_entries_time_points (time_points, byte_data)
 Serialises the writer entry time points which are held in a hashmap. More...
 
subroutine, public io_server_state_writer_mod::define_io_server_state_contributions (io_configuration, writer_entries, time_points, netcdf_file)
 Defines the dimensions and variables in a NetCDF file that consitute the IO server current state. This will call out to prepare all IO state for storage (determines the size of each byte code and issues locks for consistency.) More...
 
subroutine io_server_state_writer_mod::define_state_storage (netcdf_file, entries_directory_dim_id, base_key, expected_global_entries)
 Defines some state storate for a specific facet of the IO server. This creates the directory (location for each IO server where to load their data), the dimension and the variable. Note this uses the ISO C bindings to NetCDF to support 64 bit dimension and field lengths. More...
 
subroutine, public io_server_state_writer_mod::write_io_server_state (io_configuration, writer_entries, time_points, netcdf_file)
 Packags up and writes the actual IO server state into the NetCDF file. The act of serialisation will effectively unlock the IO server state locks that were issued in the preparation call (this is to ensure consistency between reported size and actual size when it comes time to package up.) More...
 
subroutine io_server_state_writer_mod::write_state_storage (netcdf_file, writer_entry_start_point, my_io_rank, base_key, raw_byte_code)
 Writes out the state for a specific facet into the NetCDF file. Note that this uses the ISO C bindings into NetCDF to support 64 bit counts, starts and strides. More...
 

Variables

character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_entries
 
character, dimension(:), allocatable io_server_state_writer_mod::serialised_timeaveraged_manipulation_state
 
character, dimension(:), allocatable io_server_state_writer_mod::serialised_instantaneous_manipulation_state
 
character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_field_manager_state
 
character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_entries_time_points
 
integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::global_writer_entry_byte_size
 
integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::my_writer_entry_start_point
 
integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::local_writer_entry_byte_size
 
integer io_server_state_writer_mod::global_writer_entry_byte_size_request
 
integer io_server_state_writer_mod::my_writer_entry_start_request
 
procedure(writer_field_manager_serialise_state), pointer io_server_state_writer_mod::serialise_writer_field_manager_state
 
procedure(writer_field_manager_prepare_to_serialise_state), pointer io_server_state_writer_mod::prepare_to_serialise_writer_field_manager_state
 
procedure(write_field_manager_determine_if_up_to_date), pointer io_server_state_writer_mod::is_write_field_manager_up_to_date