MONC
Data Types | Functions/Subroutines | Variables
io_server_state_writer_mod Module Reference

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

Data Types

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

Functions/Subroutines

subroutine, public 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 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 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 prepare_to_serialise_writer_entries_time_points (time_points)
 Prepares to serialise the writer entry time points. More...
 
subroutine serialise_writer_entries_time_points (time_points, byte_data)
 Serialises the writer entry time points which are held in a hashmap. More...
 
subroutine, public 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 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 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 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 serialised_writer_entries
 
character, dimension(:), allocatable serialised_timeaveraged_manipulation_state
 
character, dimension(:), allocatable serialised_instantaneous_manipulation_state
 
character, dimension(:), allocatable serialised_writer_field_manager_state
 
character, dimension(:), allocatable serialised_writer_entries_time_points
 
integer(kind=8), dimension(:), allocatable global_writer_entry_byte_size
 
integer(kind=8), dimension(:), allocatable my_writer_entry_start_point
 
integer(kind=8), dimension(:), allocatable local_writer_entry_byte_size
 
integer global_writer_entry_byte_size_request
 
integer my_writer_entry_start_request
 
procedure(writer_field_manager_serialise_state), pointer serialise_writer_field_manager_state
 
procedure(writer_field_manager_prepare_to_serialise_state), pointer prepare_to_serialise_writer_field_manager_state
 
procedure(write_field_manager_determine_if_up_to_date), pointer is_write_field_manager_up_to_date
 

Detailed Description

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

Function/Subroutine Documentation

◆ define_io_server_state_contributions()

subroutine, public io_server_state_writer_mod::define_io_server_state_contributions ( type(io_configuration_type), intent(inout)  io_configuration,
type(writer_type), dimension(:), intent(inout), volatile  writer_entries,
type(hashmap_type), intent(inout), volatile  time_points,
type(netcdf_diagnostics_type), intent(inout)  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.)

Parameters
io_configurationIO server configuration
netcdf_fileThe NetCDF file state

Definition at line 214 of file io_state_writer.F90.

214  type(io_configuration_type), intent(inout) :: io_configuration
215  type(writer_type), volatile, dimension(:), intent(inout) :: writer_entries
216  type(hashmap_type), volatile, intent(inout) :: time_points
217  type(netcdf_diagnostics_type), intent(inout) :: netcdf_file
218 
219  integer :: ncdf_dimid, ncdf_varid, current_index, i
220  character, dimension(:), allocatable :: byte
221 
222  call prepare_io_server_state_storage(io_configuration, writer_entries, time_points)
223 
224  call lock_mpi()
225  call check_netcdf_status(nf90_def_dim(netcdf_file%ncid, "io_configuration_dim", &
226  size(io_configuration%text_configuration), ncdf_dimid))
227  call c_put_integer(netcdf_file%dimension_to_id, "io_configuration_dim", ncdf_dimid)
228 
229  call check_netcdf_status(nf90_def_var(netcdf_file%ncid, "io_configuration", nf90_char, ncdf_dimid, ncdf_varid))
230  call c_put_integer(netcdf_file%variable_to_id, "io_configuration", ncdf_varid)
231 
232  call check_netcdf_status(nf90_def_dim(netcdf_file%ncid, "entries_directory_dim", io_configuration%number_of_io_servers, &
233  ncdf_dimid))
234  call unlock_mpi()
235  call c_put_integer(netcdf_file%dimension_to_id, "entries_directory_dim", ncdf_dimid)
236 
237  call wait_for_mpi_request(global_writer_entry_byte_size_request)
238 
239  current_index=1
240  do i=1, size(writer_entries)
241  if (writer_entries(i)%include_in_io_state_write) then
242  call define_state_storage(netcdf_file, ncdf_dimid, "serialised_writer_entry_"//trim(conv_to_string(i)), &
243  global_writer_entry_byte_size(current_index))
244  current_index=current_index+1
245  end if
246  end do
247 
248  call define_state_storage(netcdf_file, ncdf_dimid, "serialised_timeaveraged_manipulation", &
249  global_writer_entry_byte_size(current_index))
250  call define_state_storage(netcdf_file, ncdf_dimid, "serialised_instantaneous_manipulation", &
251  global_writer_entry_byte_size(current_index+1))
252  call define_state_storage(netcdf_file, ncdf_dimid, "serialised_writer_manager", global_writer_entry_byte_size(current_index+2))
253  call define_state_storage(netcdf_file, ncdf_dimid, "serialised_timepoints", global_writer_entry_byte_size(current_index+3))
Here is the call graph for this function:
Here is the caller graph for this function:

◆ define_state_storage()

subroutine io_server_state_writer_mod::define_state_storage ( type(netcdf_diagnostics_type), intent(inout)  netcdf_file,
integer, intent(in)  entries_directory_dim_id,
character(len=*), intent(in)  base_key,
integer(kind=8), intent(in)  expected_global_entries 
)
private

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.

Parameters
netcdf_fileThe NetCDF file state
entries_directory_dim_idNetCDF dimension ID for the directory entries
base_keyThe base key for this storage
expected_global_entriesThe number of expected global entries that will be stored

Definition at line 264 of file io_state_writer.F90.

264  type(netcdf_diagnostics_type), intent(inout) :: netcdf_file
265  integer, intent(in) :: entries_directory_dim_id
266  integer(kind=8), intent(in) :: expected_global_entries
267  character(len=*), intent(in) :: base_key
268 
269  integer :: ncdf_varid
270  integer :: ncdf_dimid
271  integer(kind=c_int) :: cncid, cdimid, cvarid, cxtype, cnvdims
272  integer(kind=c_int) :: cvdims(1)
273 
274  cncid = netcdf_file%ncid
275  cnvdims=1
276  cvdims(1)=entries_directory_dim_id-1
277 
278  cxtype=10 ! NC_INT64 type, note that this is signed as Fortran doesn't really like unsigned integers
279  call lock_mpi()
280  call check_netcdf_status(nc_def_var(cncid, trim(base_key)//"_directory"//c_null_char, cxtype, &
281  cnvdims, cvdims, cvarid))
282  ncdf_varid=cvarid+1
283 
284  call c_put_integer(netcdf_file%variable_to_id, trim(base_key)//"_directory", ncdf_varid)
285 
286  call check_netcdf_status(nc_def_dim(cncid, trim(base_key)//"_dim"//c_null_char, &
287  int(expected_global_entries, c_size_t), cdimid))
288  ncdf_dimid=cdimid+1
289  call c_put_integer(netcdf_file%dimension_to_id, trim(base_key)//"_dim", ncdf_dimid)
290  call check_netcdf_status(nf90_def_var(netcdf_file%ncid, trim(base_key), nf90_char, ncdf_dimid, ncdf_varid))
291  call c_put_integer(netcdf_file%variable_to_id, trim(base_key), ncdf_varid)
292  call unlock_mpi()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_io_server_state_writer_ready()

logical function, public io_server_state_writer_mod::is_io_server_state_writer_ready ( integer, intent(in)  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.

Returns
Whether the IO server is ready or not

Definition at line 123 of file io_state_writer.F90.

123  integer, intent(in) :: timestep
124 
125  is_io_server_state_writer_ready=is_write_field_manager_up_to_date(timestep)

◆ prepare_io_server_state_storage()

subroutine io_server_state_writer_mod::prepare_io_server_state_storage ( type(io_configuration_type), intent(inout)  io_configuration,
type(writer_type), dimension(:), intent(inout), volatile  writer_entries,
type(hashmap_type), intent(inout), volatile  time_points 
)
private

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.

Parameters
io_configurationIO server configuration
writer_entriesThe writer entries that we are going to store

Definition at line 134 of file io_state_writer.F90.

134  type(io_configuration_type), intent(inout) :: io_configuration
135  type(writer_type), volatile, dimension(:), intent(inout) :: writer_entries
136  type(hashmap_type), volatile, intent(inout) :: time_points
137 
138  integer :: i, current_data_point, number_writer_entries_included, ierr, current_index
139  character, dimension(:), allocatable :: dvt_byte_data, temp
140 
141  number_writer_entries_included=0
142  do i=1, size(writer_entries)
143  if (writer_entries(i)%include_in_io_state_write) number_writer_entries_included=number_writer_entries_included+1
144  end do
145 
146  allocate(local_writer_entry_byte_size(number_writer_entries_included+4), &
147  global_writer_entry_byte_size(number_writer_entries_included+4), &
148  my_writer_entry_start_point(number_writer_entries_included+4))
149 
150  current_index=1
151  do i=1, size(writer_entries)
152  if (writer_entries(i)%include_in_io_state_write) then
153  local_writer_entry_byte_size(current_index)=prepare_to_serialise_writer_type(writer_entries(i))
154  current_index=current_index+1
155  end if
156  end do
157 
158  local_writer_entry_byte_size(current_index)=prepare_to_serialise_time_averaged_state()
159  local_writer_entry_byte_size(current_index+1)=prepare_to_serialise_instantaneous_state()
160  local_writer_entry_byte_size(current_index+2)=prepare_to_serialise_writer_field_manager_state()
161  local_writer_entry_byte_size(current_index+3)=prepare_to_serialise_writer_entries_time_points(time_points)
162 
163  global_writer_entry_byte_size=local_writer_entry_byte_size
164  my_writer_entry_start_point=local_writer_entry_byte_size
165  call lock_mpi()
166  call mpi_iallreduce(mpi_in_place, global_writer_entry_byte_size, size(global_writer_entry_byte_size), mpi_long_long_int, &
167  mpi_sum, io_configuration%io_communicator, global_writer_entry_byte_size_request, ierr)
168  call mpi_iscan(mpi_in_place, my_writer_entry_start_point, size(my_writer_entry_start_point), mpi_long_long_int, &
169  mpi_sum, io_configuration%io_communicator, my_writer_entry_start_request, ierr)
170  call unlock_mpi()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepare_to_serialise_writer_entries_time_points()

integer(kind=8) function io_server_state_writer_mod::prepare_to_serialise_writer_entries_time_points ( type(hashmap_type), intent(inout), volatile  time_points)
private

Prepares to serialise the writer entry time points.

Parameters
time_pointsHashmap of the timepoints that will need to be serialised
Returns
The byte size required for this serialisation

Definition at line 177 of file io_state_writer.F90.

177  type(hashmap_type), volatile, intent(inout) :: time_points
178 
179  real(kind=DEFAULT_PRECISION) :: r_value
180 
181  prepare_to_serialise_writer_entries_time_points=kind(prepare_to_serialise_writer_entries_time_points) + &
182  ((kind(prepare_to_serialise_writer_entries_time_points) + kind(r_value)) * c_size(time_points))
Here is the caller graph for this function:

◆ serialise_writer_entries_time_points()

subroutine io_server_state_writer_mod::serialise_writer_entries_time_points ( type(hashmap_type), intent(inout), volatile  time_points,
character, dimension(:), intent(inout), allocatable  byte_data 
)
private

Serialises the writer entry time points which are held in a hashmap.

Parameters
time_pointsThe input time points which are to be serialised
byte_dataAllocated byte data which will hold the serialised values

Definition at line 189 of file io_state_writer.F90.

189  type(hashmap_type), volatile, intent(inout) :: time_points
190  character, dimension(:), allocatable, intent(inout) :: byte_data
191 
192  integer :: key, current_data_point
193  type(mapentry_type) :: map_entry
194  type(iterator_type) :: iterator
195  real(kind=DEFAULT_PRECISION) :: r_value
196 
197  current_data_point=1
198  current_data_point=pack_scalar_field(byte_data, current_data_point, c_size(time_points))
199  iterator=c_get_iterator(time_points)
200  do while (c_has_next(iterator))
201  map_entry=c_next_mapentry(iterator)
202  key=conv_to_integer(map_entry%key)
203  r_value=c_get_real(map_entry)
204  current_data_point=pack_scalar_field(byte_data, current_data_point, key)
205  current_data_point=pack_scalar_field(byte_data, current_data_point, double_real_value=r_value)
206  end do
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_serialise_write_field_manager_state()

subroutine, public io_server_state_writer_mod::set_serialise_write_field_manager_state ( procedure(writer_field_manager_serialise_state serialise_writer_field_manager_state_arg,
procedure(writer_field_manager_prepare_to_serialise_state prepare_to_serialise_writer_field_manager_state_arg,
procedure(write_field_manager_determine_if_up_to_date 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.

Parameters
serialise_writer_field_manager_state_argThe procedure to call for serialising the field manager state
prepare_to_serialise_writer_field_manager_state_argPreparation of field manager state procedure
is_write_field_manager_up_to_date_argProcedure to determine whether field manager is up to date

Definition at line 103 of file io_state_writer.F90.

103  procedure(writer_field_manager_serialise_state) :: serialise_writer_field_manager_state_arg
104  procedure(writer_field_manager_prepare_to_serialise_state) :: prepare_to_serialise_writer_field_manager_state_arg
105  procedure(write_field_manager_determine_if_up_to_date) :: is_write_field_manager_up_to_date_arg
106 
107  integer(kind=c_size_t) :: size_t_test
108 
109  serialise_writer_field_manager_state=>serialise_writer_field_manager_state_arg
110  prepare_to_serialise_writer_field_manager_state=>prepare_to_serialise_writer_field_manager_state_arg
111  is_write_field_manager_up_to_date=>is_write_field_manager_up_to_date_arg
112 
113  if (c_sizeof(size_t_test) .lt. 8) then
114  call log_master_log(log_warn, &
115  "Your system's size_t is not 64 bit, this will limit the size of IO server state storage to 4GB")
116  end if
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_io_server_state()

subroutine, public io_server_state_writer_mod::write_io_server_state ( type(io_configuration_type), intent(inout)  io_configuration,
type(writer_type), dimension(:), intent(inout), volatile  writer_entries,
type(hashmap_type), intent(inout), volatile  time_points,
type(netcdf_diagnostics_type), intent(inout)  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.)

Parameters
io_configurationIO server configuration
writer_entriesThe writer types which need to be serialised
time_pointsThe time points that need to be serialised
netcdf_fileThe NetCDF file state

Definition at line 303 of file io_state_writer.F90.

303  type(io_configuration_type), intent(inout) :: io_configuration
304  type(writer_type), volatile, dimension(:), intent(inout) :: writer_entries
305  type(hashmap_type), volatile, intent(inout) :: time_points
306  type(netcdf_diagnostics_type), intent(inout) :: netcdf_file
307 
308  integer :: field_id, var_id, current_index, i
309  character, dimension(:), allocatable :: serialised_bytes
310 
311  field_id=c_get_integer(netcdf_file%variable_to_id, "io_configuration")
312 
313  if (io_configuration%my_io_rank == 0) then
314  call lock_mpi()
315  call check_netcdf_status(nf90_put_var(netcdf_file%ncid, field_id, io_configuration%text_configuration, &
316  count=(/size(io_configuration%text_configuration)/)))
317  call unlock_mpi()
318  end if
319  call wait_for_mpi_request(my_writer_entry_start_request)
320 
321  current_index=1
322  do i=1, size(writer_entries)
323  if (writer_entries(i)%include_in_io_state_write) then
324  allocate(serialised_bytes(local_writer_entry_byte_size(current_index)))
325  call serialise_writer_type(writer_entries(i), serialised_bytes)
326  call write_state_storage(netcdf_file, my_writer_entry_start_point(current_index), io_configuration%my_io_rank, &
327  "serialised_writer_entry_"//trim(conv_to_string(i)), serialised_bytes)
328  deallocate(serialised_bytes)
329  current_index=current_index+1
330  end if
331  end do
332 
333  allocate(serialised_bytes(local_writer_entry_byte_size(current_index)))
334  call serialise_time_averaged_state(serialised_bytes)
335  call write_state_storage(netcdf_file, my_writer_entry_start_point(current_index), io_configuration%my_io_rank, &
336  "serialised_timeaveraged_manipulation", serialised_bytes)
337  deallocate(serialised_bytes)
338 
339  allocate(serialised_bytes(local_writer_entry_byte_size(current_index+1)))
340  call serialise_instantaneous_state(serialised_bytes)
341  call write_state_storage(netcdf_file, my_writer_entry_start_point(current_index+1), io_configuration%my_io_rank, &
342  "serialised_instantaneous_manipulation", serialised_bytes)
343  deallocate(serialised_bytes)
344 
345  allocate(serialised_bytes(local_writer_entry_byte_size(current_index+2)))
346  call serialise_writer_field_manager_state(serialised_bytes)
347  call write_state_storage(netcdf_file, my_writer_entry_start_point(current_index+2), io_configuration%my_io_rank, &
348  "serialised_writer_manager", serialised_bytes)
349  deallocate(serialised_bytes)
350 
351  allocate(serialised_bytes(local_writer_entry_byte_size(current_index+3)))
352  call serialise_writer_entries_time_points(time_points, serialised_bytes)
353  call write_state_storage(netcdf_file, my_writer_entry_start_point(current_index+3), io_configuration%my_io_rank, &
354  "serialised_timepoints", serialised_bytes)
355  deallocate(serialised_bytes)
356 
357  deallocate(local_writer_entry_byte_size, global_writer_entry_byte_size, my_writer_entry_start_point)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_state_storage()

subroutine io_server_state_writer_mod::write_state_storage ( type(netcdf_diagnostics_type), intent(inout)  netcdf_file,
integer(kind=8), intent(in)  writer_entry_start_point,
integer, intent(in)  my_io_rank,
character(len=*), intent(in)  base_key,
character, dimension(:), intent(in)  raw_byte_code 
)
private

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.

Parameters
netcdf_fileThe NetCDF file state
writer_entry_start_pointThe start point, this is uncorrected so it is actually the end point
my_io_rankMy IO server rank
base_keyThe base key to use for look up
raw_byte_codeThe raw byte code to write

Definition at line 368 of file io_state_writer.F90.

368  type(netcdf_diagnostics_type), intent(inout) :: netcdf_file
369  integer, intent(in) :: my_io_rank
370  integer(kind=8), intent(in) :: writer_entry_start_point
371  character(len=*), intent(in) :: base_key
372  character, dimension(:), intent(in) :: raw_byte_code
373 
374  integer(kind=c_int) :: cncid, cvarid, cndims, cstat1, cstatus
375  integer(kind=c_size_t), target :: cstart(1), ccounts(1)
376  integer(kind=c_ptrdiff_t), target :: cstrides(1)
377  integer(kind=c_long) :: c_writer_corrected_start_point
378  type(c_ptr) :: cstartptr, ccountsptr, cstridesptr
379 
380  cncid=netcdf_file%ncid
381  cstart(1)=my_io_rank
382  cvarid=c_get_integer(netcdf_file%variable_to_id, trim(base_key)//"_directory")-1
383  c_writer_corrected_start_point=(writer_entry_start_point-size(raw_byte_code))+1
384 
385  ccounts(1)=size(raw_byte_code)
386  cstrides(1)=1
387 
388  cstartptr=c_loc(cstart)
389  ccountsptr=c_loc(ccounts)
390  cstridesptr=c_loc(cstrides)
391 
392  call lock_mpi()
393  call check_netcdf_status(nc_put_var1_long(cncid, cvarid, cstartptr, c_writer_corrected_start_point))
394  cvarid=c_get_integer(netcdf_file%variable_to_id, trim(base_key))-1
395  cstart(1)=c_writer_corrected_start_point-1
396  call check_netcdf_status(nc_put_vars_text(cncid, cvarid, cstartptr, ccountsptr, cstridesptr, raw_byte_code))
397  call unlock_mpi()
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ global_writer_entry_byte_size

integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::global_writer_entry_byte_size
private

Definition at line 85 of file io_state_writer.F90.

85  integer(kind=8), dimension(:), allocatable :: global_writer_entry_byte_size, my_writer_entry_start_point, &
86  local_writer_entry_byte_size

◆ global_writer_entry_byte_size_request

integer io_server_state_writer_mod::global_writer_entry_byte_size_request
private

Definition at line 87 of file io_state_writer.F90.

87  integer :: global_writer_entry_byte_size_request, my_writer_entry_start_request

◆ is_write_field_manager_up_to_date

procedure(write_field_manager_determine_if_up_to_date), pointer io_server_state_writer_mod::is_write_field_manager_up_to_date
private

Definition at line 90 of file io_state_writer.F90.

90  procedure(write_field_manager_determine_if_up_to_date), pointer :: is_write_field_manager_up_to_date

◆ local_writer_entry_byte_size

integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::local_writer_entry_byte_size
private

Definition at line 85 of file io_state_writer.F90.

◆ my_writer_entry_start_point

integer(kind=8), dimension(:), allocatable io_server_state_writer_mod::my_writer_entry_start_point
private

Definition at line 85 of file io_state_writer.F90.

◆ my_writer_entry_start_request

integer io_server_state_writer_mod::my_writer_entry_start_request
private

Definition at line 87 of file io_state_writer.F90.

◆ prepare_to_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
private

Definition at line 89 of file io_state_writer.F90.

89  procedure(writer_field_manager_prepare_to_serialise_state), pointer :: prepare_to_serialise_writer_field_manager_state

◆ serialise_writer_field_manager_state

procedure(writer_field_manager_serialise_state), pointer io_server_state_writer_mod::serialise_writer_field_manager_state
private

Definition at line 88 of file io_state_writer.F90.

88  procedure(writer_field_manager_serialise_state), pointer :: serialise_writer_field_manager_state

◆ serialised_instantaneous_manipulation_state

character, dimension(:), allocatable io_server_state_writer_mod::serialised_instantaneous_manipulation_state
private

Definition at line 83 of file io_state_writer.F90.

◆ serialised_timeaveraged_manipulation_state

character, dimension(:), allocatable io_server_state_writer_mod::serialised_timeaveraged_manipulation_state
private

Definition at line 83 of file io_state_writer.F90.

◆ serialised_writer_entries

character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_entries
private

Definition at line 83 of file io_state_writer.F90.

83  character, dimension(:), allocatable :: serialised_writer_entries, serialised_timeaveraged_manipulation_state, &
84  serialised_instantaneous_manipulation_state, serialised_writer_field_manager_state, serialised_writer_entries_time_points

◆ serialised_writer_entries_time_points

character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_entries_time_points
private

Definition at line 83 of file io_state_writer.F90.

◆ serialised_writer_field_manager_state

character, dimension(:), allocatable io_server_state_writer_mod::serialised_writer_field_manager_state
private

Definition at line 83 of file io_state_writer.F90.