MONC
Functions/Subroutines
global_callback_inter_io_mod Module Reference

Global callback inter IO, which registers the callback with identifiers and then the procedure is actually called in a thread once all other IO servers have issued a matching call. More...

Functions/Subroutines

subroutine, public init_global_callback_inter_io (io_configuration)
 Initialises the global callback. More...
 
subroutine, public finalise_global_callback_inter_io (io_configuration)
 Finalises the global callback. More...
 
subroutine, public perform_global_callback (io_configuration, field_name, timestep, completion_procedure)
 Performs a global callback. More...
 

Detailed Description

Global callback inter IO, which registers the callback with identifiers and then the procedure is actually called in a thread once all other IO servers have issued a matching call.

Function/Subroutine Documentation

◆ finalise_global_callback_inter_io()

subroutine, public global_callback_inter_io_mod::finalise_global_callback_inter_io ( type(io_configuration_type), intent(inout)  io_configuration)

Finalises the global callback.

Parameters
io_configurationThe IO server configuration

Definition at line 27 of file global-callback.F90.

28  type(io_configuration_type), intent(inout) :: io_configuration
29 
30  call finalise_allreduction_inter_io(io_configuration)
Here is the call graph for this function:

◆ init_global_callback_inter_io()

subroutine, public global_callback_inter_io_mod::init_global_callback_inter_io ( type(io_configuration_type), intent(inout)  io_configuration)

Initialises the global callback.

Parameters
io_configurationThe IO server configuration

Definition at line 19 of file global-callback.F90.

20  type(io_configuration_type), intent(inout) :: io_configuration
21 
22  call init_allreduction_inter_io(io_configuration)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ perform_global_callback()

subroutine, public global_callback_inter_io_mod::perform_global_callback ( type(io_configuration_type), intent(inout)  io_configuration,
character(len=*), intent(in)  field_name,
integer, intent(in)  timestep,
procedure(handle_completion completion_procedure 
)

Performs a global callback.

Parameters
io_configurationThe IO server configuration
field_nameThe field name identifier
timestepThe timestep identifier
completion_procedureThe completion procedure which is the callback itself

Definition at line 38 of file global-callback.F90.

39  type(io_configuration_type), intent(inout) :: io_configuration
40  integer, intent(in) :: timestep
41  character(len=*), intent(in) :: field_name
42  procedure(handle_completion) :: completion_procedure
43 
44  real(kind=default_precision), dimension(:), allocatable :: v
45  integer :: i
46 
47  allocate(v(1))
48  v=0.0
49  do i=1, io_configuration%number_of_moncs
50  call perform_inter_io_allreduction(io_configuration, v, 1, field_name, 2, 0, timestep, completion_procedure)
51  end do
52  deallocate(v)
Here is the call graph for this function:
Here is the caller graph for this function:
datadefn_mod::default_precision
integer, parameter, public default_precision
MPI communication type which we use for the prognostic and calculation data.
Definition: datadefn.F90:17