FE-Project
Loading...
Searching...
No Matches
scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d Type Reference

Base derived type to manage data communication with 3D cubic domain. More...

Inheritance diagram for scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d:
scale_meshfieldcomm_base::meshfieldcommbase

Public Member Functions

procedure, public init (this, sfield_num, hvfield_num, htensorfield_num, mesh3d)
 Initialize an object to manage data communication with 3D cubic domain.
procedure, public put (this, field_list, varid_s)
 Put field data into temporary buffers.
procedure, public get (this, field_list, varid_s)
 Extract field data from temporary buffers.
procedure, public exchange (this, do_wait)
 Exchange field data between neighboring MPI processes.
procedure, public final (this)
 Finalize an object to manage data communication with 3D cubic domain.
Public Member Functions inherited from scale_meshfieldcomm_base::meshfieldcommbase
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

class(meshcubedom3d), pointer mesh3d
 Pointer to an object representing 3D cubic computational mesh.
Public Attributes inherited from scale_meshfieldcomm_base::meshfieldcommbase
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 with 3D cubic domain.

Definition at line 41 of file scale_meshfieldcomm_cubedom3d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure, public scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::init ( class(meshfieldcommcubedom3d), intent(inout) this,
integer, intent(in) sfield_num,
integer, intent(in) hvfield_num,
integer, intent(in) htensorfield_num,
class(meshcubedom3d), intent(in), target mesh3d )

Initialize an object to manage data communication with 3D cubic domain.

Parameters
[in]sfield_numNumber of scalar fields
[in]hvfield_numNumber of horizontal vector fields
[in]htensorfield_numNumber of horizontal vector fields
[in]mesh3dObject to manage a 3D cubic computational mesh

Definition at line 44 of file scale_meshfieldcomm_cubedom3d.F90.

◆ put()

procedure, public scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::put ( class(meshfieldcommcubedom3d), intent(inout) this,
type(meshfieldcontainer), dimension(:), intent(in) field_list,
integer, intent(in) varid_s )

Put field data into temporary buffers.

Parameters
[in]field_listArray of objects with 3D mesh field
[in]varid_sStart index with variables when field_list(1) is written to buffers for data communication

Definition at line 45 of file scale_meshfieldcomm_cubedom3d.F90.

◆ get()

procedure, public scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::get ( class(meshfieldcommcubedom3d), intent(inout) this,
type(meshfieldcontainer), dimension(:), intent(inout) field_list,
integer, intent(in) varid_s )

Extract field data from temporary buffers.

Parameters
[in,out]field_listArray of objects with 3D mesh field
[in]varid_sStart index with variables when field_list(1) is written to buffers for data communication

Definition at line 46 of file scale_meshfieldcomm_cubedom3d.F90.

◆ exchange()

procedure, public scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::exchange ( class(meshfieldcommcubedom3d), intent(inout), target this,
logical, intent(in), optional do_wait )

Exchange field data between neighboring MPI processes.

Parameters
do_waitFlag whether MPI_waitall is called and move tmp data of LocalMeshCommData object to a recv buffer

Definition at line 47 of file scale_meshfieldcomm_cubedom3d.F90.

◆ final()

procedure, public scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::final ( class(meshfieldcommcubedom3d), intent(inout) this)

Finalize an object to manage data communication with 3D cubic domain.

Definition at line 48 of file scale_meshfieldcomm_cubedom3d.F90.

Member Data Documentation

◆ mesh3d

class(meshcubedom3d), pointer scale_meshfieldcomm_cubedom3d::meshfieldcommcubedom3d::mesh3d

Pointer to an object representing 3D cubic computational mesh.

Definition at line 42 of file scale_meshfieldcomm_cubedom3d.F90.

42 class(MeshCubeDom3D), pointer :: mesh3d !< Pointer to an object representing 3D cubic computational mesh

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