FE-Project
Loading...
Searching...
No Matches
scale_meshfieldcomm_base::meshfieldcommbase Type Referenceabstract

Base derived type to manage data communication. More...

Inheritance diagram for scale_meshfieldcomm_base::meshfieldcommbase:
scale_meshfieldcomm_1d::meshfieldcomm1d scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d scale_meshfieldcomm_cubedspheredom3d::meshfieldcommcubedspheredom3d scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d

Public Member Functions

procedure(meshfieldcommbase_put), deferred, public put meshfieldcommbase_put
procedure(meshfieldcommbase_get), deferred, public get meshfieldcommbase_get
procedure(meshfieldcommbase_exchange), deferred, public exchange meshfieldcommbase_exchange
procedure, public prepare_pc (this, use_mpi_pc_fujitsu_ext)
 Prepare persistent communication.

Public Attributes

integer sfield_num
 Number of scalar fields.
integer hvfield_num
 Number of horizontal vector fields.
integer htensorfield_num
 Number of horizontal tensor fields.
integer field_num_tot
 Total number of fields.
integer nfaces_comm
 Number of faces where halo data is communicated.
class(meshbase), pointer mesh
real(rp), dimension(:,:,:), allocatable send_buf
 Buffer for sending data.
real(rp), dimension(:,:,:), allocatable recv_buf
 Buffer for receiving data.
integer, dimension(:), allocatable request_send
integer, dimension(:), allocatable request_recv
type(localmeshcommdata), dimension(:,:), allocatable commdata_list
integer, dimension(:,:), allocatable is_f
logical mpi_pc_flag
 Flag whether persistent communication is used.
logical use_mpi_pc_fujitsu_ext
 Flag whether Fujitsu extension routines are used for persistent communication.
integer, dimension(:), allocatable request_pc
integer req_counter
logical call_wait_flag_sub_get
 Flag whether MPI_wait need to be called before getting halo data from recv_buf.
integer obj_ind

Detailed Description

Base derived type to manage data communication.

Definition at line 58 of file scale_meshfieldcomm_base.F90.

Member Function/Subroutine Documentation

◆ put()

procedure(meshfieldcommbase_put), deferred, public scale_meshfieldcomm_base::meshfieldcommbase::put
pure virtual

Definition at line 83 of file scale_meshfieldcomm_base.F90.

◆ get()

procedure(meshfieldcommbase_get), deferred, public scale_meshfieldcomm_base::meshfieldcommbase::get
pure virtual

Definition at line 84 of file scale_meshfieldcomm_base.F90.

◆ exchange()

procedure(meshfieldcommbase_exchange), deferred, public scale_meshfieldcomm_base::meshfieldcommbase::exchange
pure virtual

Definition at line 85 of file scale_meshfieldcomm_base.F90.

◆ prepare_pc()

procedure, public scale_meshfieldcomm_base::meshfieldcommbase::prepare_pc ( class(meshfieldcommbase), intent(inout) this,
logical, intent(in), optional use_mpi_pc_fujitsu_ext )

Member Data Documentation

◆ sfield_num

integer scale_meshfieldcomm_base::meshfieldcommbase::sfield_num

Number of scalar fields.

Definition at line 59 of file scale_meshfieldcomm_base.F90.

59 integer :: sfield_num !< Number of scalar fields

◆ hvfield_num

integer scale_meshfieldcomm_base::meshfieldcommbase::hvfield_num

Number of horizontal vector fields.

Definition at line 60 of file scale_meshfieldcomm_base.F90.

60 integer :: hvfield_num !< Number of horizontal vector fields

◆ htensorfield_num

integer scale_meshfieldcomm_base::meshfieldcommbase::htensorfield_num

Number of horizontal tensor fields.

Definition at line 61 of file scale_meshfieldcomm_base.F90.

61 integer :: htensorfield_num !< Number of horizontal tensor fields

◆ field_num_tot

integer scale_meshfieldcomm_base::meshfieldcommbase::field_num_tot

Total number of fields.

Definition at line 62 of file scale_meshfieldcomm_base.F90.

62 integer :: field_num_tot !< Total number of fields

◆ nfaces_comm

integer scale_meshfieldcomm_base::meshfieldcommbase::nfaces_comm

Number of faces where halo data is communicated.

Definition at line 63 of file scale_meshfieldcomm_base.F90.

63 integer :: nfaces_comm !< Number of faces where halo data is communicated

◆ mesh

class(meshbase), pointer scale_meshfieldcomm_base::meshfieldcommbase::mesh

Definition at line 65 of file scale_meshfieldcomm_base.F90.

65 class(MeshBase), pointer :: mesh

◆ send_buf

real(rp), dimension(:,:,:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::send_buf

Buffer for sending data.

Definition at line 66 of file scale_meshfieldcomm_base.F90.

66 real(RP), allocatable :: send_buf(:,:,:) !< Buffer for sending data

◆ recv_buf

real(rp), dimension(:,:,:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::recv_buf

Buffer for receiving data.

Definition at line 67 of file scale_meshfieldcomm_base.F90.

67 real(RP), allocatable :: recv_buf(:,:,:) !< Buffer for receiving data

◆ request_send

integer, dimension(:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::request_send

Definition at line 68 of file scale_meshfieldcomm_base.F90.

68 integer, allocatable :: request_send(:)

◆ request_recv

integer, dimension(:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::request_recv

Definition at line 69 of file scale_meshfieldcomm_base.F90.

69 integer, allocatable :: request_recv(:)

◆ commdata_list

type(localmeshcommdata), dimension(:,:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::commdata_list

Definition at line 71 of file scale_meshfieldcomm_base.F90.

71 type(LocalMeshCommData), allocatable :: commdata_list(:,:)

◆ is_f

integer, dimension(:,:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::is_f

Definition at line 72 of file scale_meshfieldcomm_base.F90.

72 integer, allocatable :: is_f(:,:)

◆ mpi_pc_flag

logical scale_meshfieldcomm_base::meshfieldcommbase::mpi_pc_flag

Flag whether persistent communication is used.

Definition at line 74 of file scale_meshfieldcomm_base.F90.

74 logical :: MPI_pc_flag !< Flag whether persistent communication is used

◆ use_mpi_pc_fujitsu_ext

logical scale_meshfieldcomm_base::meshfieldcommbase::use_mpi_pc_fujitsu_ext

Flag whether Fujitsu extension routines are used for persistent communication.

Definition at line 75 of file scale_meshfieldcomm_base.F90.

75 logical :: use_mpi_pc_fujitsu_ext !< Flag whether Fujitsu extension routines are used for persistent communication

◆ request_pc

integer, dimension(:), allocatable scale_meshfieldcomm_base::meshfieldcommbase::request_pc

Definition at line 76 of file scale_meshfieldcomm_base.F90.

76 integer, allocatable :: request_pc(:)

◆ req_counter

integer scale_meshfieldcomm_base::meshfieldcommbase::req_counter

Definition at line 78 of file scale_meshfieldcomm_base.F90.

78 integer :: req_counter

◆ call_wait_flag_sub_get

logical scale_meshfieldcomm_base::meshfieldcommbase::call_wait_flag_sub_get

Flag whether MPI_wait need to be called before getting halo data from recv_buf.

Definition at line 79 of file scale_meshfieldcomm_base.F90.

79 logical :: call_wait_flag_sub_get !< Flag whether MPI_wait need to be called before getting halo data from recv_buf

◆ obj_ind

integer scale_meshfieldcomm_base::meshfieldcommbase::obj_ind

Definition at line 81 of file scale_meshfieldcomm_base.F90.

81 integer :: obj_ind

The documentation for this type was generated from the following file: