FE-Project
Loading...
Searching...
No Matches
scale_meshfieldcomm_1d::meshfieldcomm1d Type Reference

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

Inheritance diagram for scale_meshfieldcomm_1d::meshfieldcomm1d:
scale_meshfieldcomm_base::meshfieldcommbase

Public Member Functions

procedure, public init (this, sfield_num, hvfield_num, mesh1d, halosize_1d)
 Initialize an object to manage data communication with 1D 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 1D 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(meshbase1d), pointer mesh1d
 Pointer to an object representing 1D computational mesh.
integer halosize_1d
 Halo size in 1D direction.
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.
integer bufsize_per_field
 Buffer size per a field data.
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
integer, dimension(:), allocatable nnode_lcmeshallface
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
logical use_vmap_wide_flag
integer, dimension(:), allocatable vmapb_size
integer, dimension(:), allocatable vmapb2

Detailed Description

Base derived type to manage data communication with 1D domain.

Definition at line 43 of file scale_meshfieldcomm_1d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure, public scale_meshfieldcomm_1d::meshfieldcomm1d::init ( class(meshfieldcomm1d), intent(inout) this,
integer, intent(in) sfield_num,
integer, intent(in) hvfield_num,
class(meshbase1d), intent(in), target mesh1d,
integer, intent(in), optional halosize_1d )

Initialize an object to manage data communication with 1D domain.

Parameters
[in]sfield_numNumber of scalar fields
[in]hvfield_numNumber of vector fields
[in]mesh1dObject to manage a 1D computational mesh
[in]halosize_1dHalo size in 1D direction (default: 1)

Definition at line 48 of file scale_meshfieldcomm_1d.F90.

◆ put()

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

Put field data into temporary buffers.

Definition at line 49 of file scale_meshfieldcomm_1d.F90.

◆ get()

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

Extract field data from temporary buffers.

Definition at line 50 of file scale_meshfieldcomm_1d.F90.

◆ exchange()

procedure, public scale_meshfieldcomm_1d::meshfieldcomm1d::exchange ( class(meshfieldcomm1d), 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 51 of file scale_meshfieldcomm_1d.F90.

◆ final()

procedure, public scale_meshfieldcomm_1d::meshfieldcomm1d::final ( class(meshfieldcomm1d), intent(inout) this)

Finalize an object to manage data communication with 1D domain.

Definition at line 52 of file scale_meshfieldcomm_1d.F90.

Member Data Documentation

◆ mesh1d

class(meshbase1d), pointer scale_meshfieldcomm_1d::meshfieldcomm1d::mesh1d

Pointer to an object representing 1D computational mesh.

Definition at line 44 of file scale_meshfieldcomm_1d.F90.

44 class(MeshBase1D), pointer :: mesh1d !< Pointer to an object representing 1D computational mesh

◆ halosize_1d

integer scale_meshfieldcomm_1d::meshfieldcomm1d::halosize_1d

Halo size in 1D direction.

Definition at line 46 of file scale_meshfieldcomm_1d.F90.

46 integer :: haloSize_1D !< Halo size in 1D direction

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