FE-Project
Loading...
Searching...
No Matches
scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d Type Reference

Base derived type to manage data communication with 2D cubed-sphere domain. More...

Inheritance diagram for scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d:
scale_meshfieldcomm_base::meshfieldcommbase

Public Member Functions

procedure, public init (this, sfield_num, hvfield_num, htensorfield_num, mesh2d, halosize_1d)
 Initialize an object to manage data communication with 2D cubed-sphere computational mesh.
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 setcovariantvec (this, hvfield_id, u1, u2)
 Register objects to manage covariant vector components.
procedure, public final (this)
 Finalize an object to manage data communication with 2D cubed-sphere computational mesh.
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(meshcubedspheredom2d), pointer mesh2d
 Pointer to an object representing 2D cubed-sphere computational mesh.
type(veccovariantcomp), dimension(:), allocatable vec_covariant_comp_ptrlist
integer halosize_1d
 Halo size for 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 2D cubed-sphere domain.

Definition at line 50 of file scale_meshfieldcomm_cubedspheredom2d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure, public scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::init ( class(meshfieldcommcubedspheredom2d), intent(inout) this,
integer, intent(in) sfield_num,
integer, intent(in) hvfield_num,
integer, intent(in) htensorfield_num,
class(meshcubedspheredom2d), intent(in), target mesh2d,
integer, intent(in), optional halosize_1d )

Initialize an object to manage data communication with 2D cubed-sphere computational mesh.

Definition at line 56 of file scale_meshfieldcomm_cubedspheredom2d.F90.

◆ put()

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

Put field data into temporary buffers.

Definition at line 57 of file scale_meshfieldcomm_cubedspheredom2d.F90.

◆ get()

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

Extract field data from temporary buffers.

Definition at line 58 of file scale_meshfieldcomm_cubedspheredom2d.F90.

◆ exchange()

procedure, public scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::exchange ( class(meshfieldcommcubedspheredom2d), 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 59 of file scale_meshfieldcomm_cubedspheredom2d.F90.

◆ setcovariantvec()

procedure, public scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::setcovariantvec ( class(meshfieldcommcubedspheredom2d), intent(inout) this,
integer, intent(in) hvfield_id,
type(meshfield2d), intent(in), target u1,
type(meshfield2d), intent(in), target u2 )

Register objects to manage covariant vector components.

Definition at line 60 of file scale_meshfieldcomm_cubedspheredom2d.F90.

◆ final()

procedure, public scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::final ( class(meshfieldcommcubedspheredom2d), intent(inout) this)

Finalize an object to manage data communication with 2D cubed-sphere computational mesh.

Definition at line 61 of file scale_meshfieldcomm_cubedspheredom2d.F90.

Member Data Documentation

◆ mesh2d

class(meshcubedspheredom2d), pointer scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::mesh2d

Pointer to an object representing 2D cubed-sphere computational mesh.

Definition at line 51 of file scale_meshfieldcomm_cubedspheredom2d.F90.

51 class(MeshCubedSphereDom2D), pointer :: mesh2d !< Pointer to an object representing 2D cubed-sphere computational mesh

◆ vec_covariant_comp_ptrlist

type(veccovariantcomp), dimension(:), allocatable scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::vec_covariant_comp_ptrlist

Definition at line 52 of file scale_meshfieldcomm_cubedspheredom2d.F90.

52 type(VecCovariantComp), allocatable :: vec_covariant_comp_ptrlist(:)

◆ halosize_1d

integer scale_meshfieldcomm_cubedspheredom2d::meshfieldcommcubedspheredom2d::halosize_1d

Halo size for 1D direction.

Definition at line 54 of file scale_meshfieldcomm_cubedspheredom2d.F90.

54 integer :: haloSize_1D !< Halo size for 1D direction

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