MONC
global-callback.F90
Go to the documentation of this file.
1 
8  implicit none
9 
10 #ifndef TEST_MODE
11  private
12 #endif
13 
15 contains
16 
19  subroutine init_global_callback_inter_io(io_configuration)
20  type(io_configuration_type), intent(inout) :: io_configuration
21 
22  call init_allreduction_inter_io(io_configuration)
23  end subroutine init_global_callback_inter_io
24 
27  subroutine finalise_global_callback_inter_io(io_configuration)
28  type(io_configuration_type), intent(inout) :: io_configuration
29 
30  call finalise_allreduction_inter_io(io_configuration)
32 
38  subroutine perform_global_callback(io_configuration, field_name, timestep, completion_procedure)
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)
53  end subroutine perform_global_callback
global_callback_inter_io_mod
Global callback inter IO, which registers the callback with identifiers and then the procedure is act...
Definition: global-callback.F90:3
global_callback_inter_io_mod::perform_global_callback
subroutine, public perform_global_callback(io_configuration, field_name, timestep, completion_procedure)
Performs a global callback.
Definition: global-callback.F90:39
inter_io_specifics_mod
Inter IO server communication specific functionality. This manages all of the communication that migh...
Definition: inter-io-specifics.F90:3
global_callback_inter_io_mod::init_global_callback_inter_io
subroutine, public init_global_callback_inter_io(io_configuration)
Initialises the global callback.
Definition: global-callback.F90:20
allreduction_inter_io_mod::finalise_allreduction_inter_io
subroutine, public finalise_allreduction_inter_io(io_configuration)
Finalises the all reduction inter IO functionality.
Definition: allreduction-inter-io.F90:50
allreduction_inter_io_mod::init_allreduction_inter_io
subroutine, public init_allreduction_inter_io(io_configuration)
Initialises the all reduction inter IO functionality.
Definition: allreduction-inter-io.F90:37
global_callback_inter_io_mod::finalise_global_callback_inter_io
subroutine, public finalise_global_callback_inter_io(io_configuration)
Finalises the global callback.
Definition: global-callback.F90:28
configuration_parser_mod::io_configuration_type
Overall IO configuration.
Definition: configurationparser.F90:104
allreduction_inter_io_mod
All reduction, which does a reduce and then broadcasts the data to all IO servers.
Definition: allreduction-inter-io.F90:2
datadefn_mod
Contains common definitions for the data and datatypes used by MONC.
Definition: datadefn.F90:2
allreduction_inter_io_mod::perform_inter_io_allreduction
subroutine, public perform_inter_io_allreduction(io_configuration, field_values, field_size, field_name, reduction_op, root, timestep, completion_procedure)
Performs the all reduction inter IO reduction.
Definition: allreduction-inter-io.F90:82
configuration_parser_mod
Parses the XML configuration file to produce the io configuration description which contains the data...
Definition: configurationparser.F90:3
inter_io_specifics_mod::handle_completion
Definition: inter-io-specifics.F90:18
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