MONC
communicationtypes.F90
Go to the documentation of this file.
1 
7  implicit none
8 
9 #ifndef TEST_MODE
10  private
11 #endif
12 
13  ! A wrapper type (as F doesn't allow an array of 3D arrays) to point to field data
15  real(kind=DEFAULT_PRECISION), dimension(:,:,:), pointer :: data
16  end type field_data_wrapper_type
17 
21  integer :: pid, halo_pages=0, halo_corners=0, dimension, recv_size, send_size, &
22  recv_corner_size, send_corner_size
23  real(kind=DEFAULT_PRECISION), dimension(:,:,:), allocatable :: send_halo_buffer, &
24  recv_halo_buffer, send_corner_buffer, recv_corner_buffer
26 
29  integer :: number_distinct_neighbours, fields_per_cell, halo_depth, cell_match(3,4)
30  type(neighbour_description_type), dimension(:), allocatable :: halo_swap_neighbours
31  integer, dimension(:), allocatable :: send_requests, recv_requests
32  logical :: initialised = .false., swap_in_progress=.false., involve_corners=.false.
34 
36 end module communication_types_mod
Contains the types used for communication, holding the state of communications and supporting activit...
integer, parameter, public default_precision
MPI communication type which we use for the prognostic and calculation data.
Definition: datadefn.F90:17
Contains common definitions for the data and datatypes used by MONC.
Definition: datadefn.F90:2
Maintains the state of a halo swap and contains buffers, neighbours etc.
Describes the neighbours of a process in a specific dimension and contains the communication buffers ...